第2章 8086微处理器及汇编语言——汇编语言.pptVIP

第2章 8086微处理器及汇编语言——汇编语言.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 8086微处理器及汇编语言——汇编语言

第2章 8086微处理器与汇编语言 汇编语言 学习目标 了解8086汇编语言格式以及伪指令的应用要求。 理解程序设计中顺序、分支、循环的基本结构,以及实现方法。 学习内容 汇编语言语句的种类及其格式 汇编语言数据 表达式与运算符 伪指令 汇编语言程序设计 汇编语言语句的种类及其格式 指令语句 能产生目标代码, CPU可以执行, 完成特定功能的语句, 由CPU指令组成。 指示语句(伪指令语句) 不产生目标代码, 仅是为汇编程序作指示的语句。 汇编语言数据 常量: 如立即数,直接寻址的地址,ASCⅡ码字符串等。 变量: 通常指存放在内存中的值,即内存操作数。 属性:段值(SEG)、段内偏移量(OFFSET)及类型(TYPE)。 类型:字节型(byte)、字型(word)和双字型(dword)。 表达式与运算符 表达式 表达式由常量(数值常量、符号常量、字符常量); 变量; 操作符(分析操作符、综合操作符)和运算符(算术运算符、逻辑运算符、关系运算符)组成。 运算符 算术运算符 —— + , - , * , / , MOD。 关系运算符 EQ(等于)、NE(不等)、LT(小于)、 GT(大于)、 LE(小于或等于)、GE(大于或等于) 参与关系运算操作的两个操作数必须都同为数字或为同一段内的两个存储器地址。 计算的结果应为逻辑值: 结果为真,表示为FFFFH 结果为假,表示为0 TYPE: 返回一个数值,表示存储器操作数的类型。 格式: TYPE 变量或标号 伪指令 数据定义伪指令语句 功能:定义变量的类型,分配空间并赋初值。 格式:[变量名] DB/DW/DD 操作数[,操作数…] [变量名] 是任选项,是数据单元的符号地址。 操作数的几种形式 操作数为常数,常数表达式或为字符(串) 操作数是“?”只定义存储空间,但不预存储数据 操作数是已定义的变量或标号 操作数字段的几种形式举例 符号定义的伪指令 表达式赋值伪指令EQU 格式: 名字 EQU 表达式 表达式可以是常数、符号、地址表达式、寄存器, 指令等; 表达式不允许重复定义。 等号 = 伪操作 “=”与“EQU”的功能一样, 但“=”操作允许表达式重复定义。 类型定义伪指令LABLE 格式:标号/变量 LABLE 类型 功能:对标号/变量的类型定义, 它的段地址和偏移地址与下一个存储器单元的相同。 变量类型: BYTE、 WORD、 DWORD 标号类型: NEAR、FAR 汇编语言程序设计 与高级语言程序一样,无论程序是复杂还是简单,其基本结构形式有四种,即顺序结构、分支结构、循环结构和子程序。 汇编语句程序设计时,都要有下列步骤: ① 分析问题,建立数学模型,确定算法 ② 画出程序流程图 ③ 合理分配存储空间和寄存器 ④ 编制程序 ⑤ 调试和执行程序 用方框表示工作框,框中用简明语言标明要完成的功能。 各框之间用直线连起来表示程序走向。 顺序结构程序 按语句实现的先后次序执行一系列操作。 DO…UNTIL条件 结构 先执行,再判断条件,工作部分至少执行一次。 DO WHILE条件 结构 先判断条件,再执行,工作部分有可能一次都不执行。 主程序与子程序之间的参数传送 调用子程序时,经常要求将数据传给子程序,而子程序返回时,要求将处理结果送会主程序,这就是主子程序间数据传送问题。 利用存储器传送——当主、子程序在同一个模块中时, 子程序可直接访问模块中的变量 利用寄存器传送——如果传送的数据较少,可把传送的数据直接放在寄存器中传送 利用地址表传送 通过堆栈传送 掌握以下几点: 调用子程序用CALL指令,返回调用程序用RET指令。 子程序允许嵌套调用。 进入子程序后首先要保护主程序的运行状态(标志位)和使用的寄存器内容(称为保护现场),退出子程序前要恢复现场。 调用前要预先定义好入口参数和出口参数,参数传递可利用寄存器、存储单元或堆栈(要用BP寻址)。 例:将两个给定的二进制数转换成二进制数表示的ASCII码。 LABLE伪指令应用举例 AGAINF LABLE FAR AGAIN: PUSH AX AGAIN的类型为NEAR,允许在本段内调用; AGAINF的类型为FAR,允许被其他段调用; AGAIN与AGAINF的段、偏移属性均相同。 AREAW LABLE WORD AREAB DB 100 DUP(?) ? MOV AREAW , AX ? MOV AREAB[BX] , AL AREAW的类型为WORD,AREAB的类型为BYTE 它们的段地址与偏移地址一样 段定义伪指令SEGMENT/ENDS 格式: 段名 SEGMEN

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档