第3章 8088 8086MPU的指令系统.ppt

  1. 1、本文档共187页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 8088 8086MPU的指令系统

子程序返回指令RET:返回指令格式有2钟: RET ;SP=((SP+1),SP),SP=SP+2 ,出栈 RET n ;SP=((SP+1),SP),SP=SP+2 SP=SP+n 要求n为偶数,当RET正常返回后,再做SP=SP+n操作。 注意:返回指令RET需要弹出CALL指令压入堆栈的返回地址 (1)同一段内的返回——只出栈偏移地址IP ,即 IP←SS:[SP], SP←SP+2 (2)不同段间的返回——出栈偏移地址IP和段地址CS IP←SS:[SP],SP←SP+2 然后 CS←SS:[SP],SP←SP+2 3.3.8字符串操作指令 字符串操作指令处理放在存储器中的字节串或字串,串处理的方向有方向标志位DF决定,串处理指令之前可加重复前缀,在执行串处理指令时,源串的指针SI和目的串的指针DI根据DF的指示自动增量(+1或+2)或自动减量(-1或-2) 1.设置方向标志指令: 格式1:CLD 功能:DF置0,串处理的方向是自动增量。 格式2:STD 功能:DFZ置1,串处理的方向是自动减量。 2.串处理指令 格式1: MOVSB 或MOVSW 功能:串传送,传字节或传字。 (ES:DI)?(DS:SI) (SI)?(SI)±1(字节)或±2(字) (DI)?(DI)±1(字节)或±2(字) 格式2:STOSB或STOSW 功能:存串。 (ES:DI)?(AL)或(AX) (DI)?(DI)±1(字节)或±2(字) 格式3:LODSB或LODSW 功能:取串. (AL)或(AX) ? (ES:SI) (SI)?(SI)±1(字节)或±2(字) 格式4:CMPSB或CMPSW 功能:串比较。 (DS:SI)-(ES:DI),根据比较的结果设置条件码. (SI)?(SI)±1(字节)或±2(字) (DI)?(DI)±1(字节)或±2(字) 格式5:SCASB 或SCASW 功能:串扫描. (AL)-(ES:DI)或(AX)-(ES:DI),根据扫描比较的结果设置条件码. (DI)?(DI)±1(字节)或±2(字) 3.串重复前缀 格式1:REP 功能:重复执行串指令,(CX)=重复次数。 (CX)=0时,串指令执行完毕,否则执行: (CX)?(CX)-1 执行串指令(MOVS或STOS) 重复执行 格式2:REPE/REPZ 功能:相等或为零时重复执行串指令,(CX)=比较或扫描的次数. (CX)=0或ZF=0时,结束执行串指令.否则继续执行: (CX)?(CX)-1 执行串指令(CMPS或SCAS) 重复执行 格式3:REPNE/REPNZ 功能:不等或不为零时重复执行串指令.(CX)=比较或扫描的次数. (CX)=0或ZF=0,结束执行串指令,否则继续执行: (CX)?(CX)-1 执行串指令 (CMPS或SCAS) 重复执行 例3-27 编写程序:传输20个字节的字符串 DATASEG SEGMENT DATAX DB ‘ABCDEFGHIJKLMNOPQRST’ DATAY DB 20 DUP(?) DATASEG ENDS ;以上伪指令语句定义名字为DATASEG的数据段 CODSEG SEGMENT ;定义名字为CODSEG的代码段 ASUME CS: CODSEG DS:DATASEG ES:DATASEG START:MOV AX, DATASEG ;数据段的基地址送AX寄存器 MOV DS,AX ;源数据段的基地址送DS寄存器 MOV ES,AX ;目的数据段的基地址送ES寄存器 CLD ;字符串处理方向是自动增量 ,+1 例3-27 编写程序:传输20个字节的字符串 MOV SI, OFFSET DATAX ; DATAX的偏移首地址送SI寄存器 MOV DI, OFFSET DATAY; DATAY的偏移首地址送DI寄存器 MOV CX,20 ; 把字符串的长度20个字节,送计数器CX REP MOVSB ;重复执行串传送指令(ES:DI)?(DS:SI),方 向是自动增量, 然后(CX)?(CX)-1,直到计数器CX=0为止。 MOV AX,4C00H ;AH=4CH,带返回码(AL=00H)结束,见附录P297 INT 21H ;DOS系统功能调用,把结果存盘 ,见P200 CODSEG ENDS ;名字为CODSEG的代码段结束 END START ;汇编程序结束编译 例3-

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档