第4章汇编语言程序设计基本方法(1).pptVIP

第4章汇编语言程序设计基本方法(1).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文档。上传文档
查看更多
第4章 汇编语言程序设计基本方法 张大兴 4.2 8086/8088指令系统 数据传送指令 算术运算指令 逻辑运算指令 移位指令 标志处理指令和CPU控制指令 缩写与符号 数据传送指令 通用数据传送 标志位操作 地址传送 a.通用数据传送 一般数据传送指令 MOV 交换指令 XCHG 查表转换指令 XLAT 堆栈操作指令 PUSH, POP 字位扩展指令 CBW, CWD MOV 一般数据传送指令 MOV 格式:MOV DST,SRC 操作:SRC DST 例: MOV AL,BL MOV 注:MOV指令不能传送的5条路径 立即数 ? 段寄存器 存储单元 ? 存储单元 段寄存器 ? 段寄存器 其它 ? CS 其它 ? 立即数 XCHG(数据交换指令) 格式: XCHG REG,MEM/REG 两操作数必须有一个是寄存器操作数 不允许使用段寄存器。 例: XCHG AX,BX XCHG [2000],CL XLAT(字节转换指令,查表指令) 格式: XLAT 用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址。 XLAT 数据段中存放有一张ASCII码转换表,设首地址为2000H,现欲查出表中第11个代码的ASCII码(设DS=4000H) PUSH, POP (堆栈操作指令) 堆栈:以后进先出(LIFO)的规则存取信息的一种存储机构。开始放入数据的单元叫做“栈底”;数据一个一个地存入,这个过程叫做“压栈”;最后存入信息的单元称为“栈顶” 。 堆栈是一个存放数据的区域,这个区域特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’。 堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’;有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就自动减2,每当执行一次POP指令,SP就自动加2。 PUSH, POP 压栈指令 PUSH 格式: PUSH OPRD 出栈指令 POP 格式: POP OPRD PUSH 设AX=1234H,SP=1200H 执行 PUSH AX 指令后堆栈区的状态: POP 执行 POP AX 堆栈区的状态: PUSH, POP 说明 指令的操作数必须是16位的(字); 操作数可以是寄存器或存储器两单元,但不能是立即数; 不能从栈顶弹出一个字给CS; PUSH和POP指令在程序中一般成对出现; PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反。(栈底在最高地址) 堆栈操作指令举例 PUSH AX PUSH BX POP AX POP BX CBW,CWD(字位扩展指令) 将符号数的符号位扩展到高位; 无符号数的扩展规则为在高位补0 指令为零操作数指令,采用隐含寻址,隐含的操作数为AX及AX,DX CBW(字节到字) 格式: CBW 操作:将AL内容扩展到AX 规则:若最高位=1,则执行后AH=FFH 若最高位=0,则执行后AH=00H CWD(字到双字) 格式: CWD 操作:将AX内容扩展到DX AX 规则:若最高位=1,则执行后DX=FFFFH 若最高位=0,则执行后DX=0000H CBW,CWD 举例 MOV AL,44H CBW ;执行结果? MOV AX,0AFDEH CWD MOV AL,86H CBW b. 标志位传送指令 LAHF SAHF PUSHF POPF LAHF,SAHF LAHF ;将FLAGS的低8位装入AH SAHF ;执行与LAHF相反的操作 PUSHF,POPF 针对FLAGS的堆栈操作指令 将标志寄存器压栈或从堆栈弹出 c. 地址传送指令 取有效地址指令LEA LDS指令 取地址指针指令 LES指令 LEA(取有效地址指令) 将变量的16位偏移地址取出送目标寄存器 格式: LEA REG,MEM 相当于 MOV REG,OFFSET MEM 指令要求源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器,不能是段寄存器 LEA 比较下列指令: LEA SI,DATA1 MOV SI,DATA1 MOV BX,[BX]

文档评论(0)

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

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

1亿VIP精品文档

相关文档