3.4微机原理题稿.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.2.5 串操作类指令 串操作指令是8086指令系统中比较独特的一类指令,采用比较特殊的数据串寻址方式,在操作主存连续区域的数据时,特别好用、因而常用 重点掌握: MOVS STOS LODS CMPS SCAS REP 一般了解: REPZ/REPE REPNZ/REPNE 串数据类型 串操作指令的操作数是主存中连续存放的数据串(String)——即在连续的主存区域中,字节或字的序列 串操作指令的操作对象是以字(W)为单位的字串,或是以字节(B)为单位的字节串 串寻址方式 源操作数用寄存器SI寻址,默认在数据段DS中,但允许段超越:DS:[SI] 目的操作数用寄存器DI寻址,默认在附加段ES中,不允许段超越:ES:[DI] 每执行一次串操作指令,SI和DI将自动修改: ±1(对于字节串)或±2(对于字串) 执行指令CLD指令后,DF = 0,地址指针增1或2 执行指令STD指令后,DF = 1,地址指针减1或2 串传送MOVS(move string) 把字节或字操作数从主存的源地址传送至目的地址 例3.52:字节串传送 MOV SI,offset SOURCE MOV DI,offset DESTINATION MOV CX,100 ;cx←传送次数 CLD ;置DF=0,地址增加 AGAIN: MOVSB ;传送一个字节 DEC CX ;传送次数减1 JNZ AGAIN ;判断传送次数CX是否为0 ;不为0,则到AGAIN位置执行指令 ;否则,结束 例3.52:字串传送 MOV SI,offset SOURCE MOV DI,offset DESTINATION MOV CX,50 ;CX←传送次数 CLD ;置DF=0,地址增加 AGAIN: MOVSW ;传送一个字 DEC CX ;传送次数减1 JNZ AGAIN ;判断传送次数CX是否为0 ;不为0,则到AGAIN位置执行指令 ;否则,结束 串存储STOS(store string) 把AL或AX数据传送至目的地址 串读取LODS(load string) 把指定主存单元的数据传送给AL或AX 串比较CMPS(compare string) 将主存中的源操作数减去至目的操作数,以便设置标志,进而比较两操作数之间的关系 串扫描SCAS(scan string) 将AL/AX减去至目的操作数,以便设置标志,进而比较AL/AX与操作数之间的关系 重复前缀指令(repeat) 串操作指令执行一次,仅对数据串中的一个字节或字量进行操作。但是串操作指令前,都可以加一个重复前缀,实现串操作的重复执行。重复次数隐含在CX寄存器中 重复前缀分2类,3条指令: 配合不影响标志的MOVS、STOS(和LODS)指令的REP前缀 配合影响标志的CMPS和SCAS指令的REPZ和REPNZ前缀 REP重复前缀指令 REP前缀可以理解为:当数据串没有结束(CX≠0),则继续传送 REPZ重复前缀指令 REPZ/REPE前缀可以理解为:当数据串没有结束(CX≠0),并且串相等(ZF=1),则继续比较 REPNZ重复前缀指令 REPNZ/REPNE前缀可以理解为:当数据串没有结束(CX≠0),并且串不相等(ZF=0),则继续比较 3.2.6 处理机控制类指令 对CPU状态进行控制的指令 NOP LOCK HLT ESC WAIT 空操作指令 NOP 不执行任何操作,但占用一个字节存储单元,空耗一个指令执行周期 NOP常用于程序调试 在需要预留指令空间时用NOP填充 代码空间多余时也可以用NOP填充 还可以用NOP实现软件延时 事实上,NOP和XCHG AX,AX的指令代码一样,都是 90H 段超越前缀指令 在允许段超越的存储器操作数之前,使用段超越前缀指令,将采用指定的段寄存器寻址操作数 CS: ;使用代码段的数据 SS: ;使用堆栈段的数据 DS: ;使用数据段的数据 ES: ;使用附加段的数据 封锁前缀指令 LOCK ;封锁总线 这是一个指令前缀,可放在任何指令前 这个前缀使得在这个指令执行时间内,8086 处理器的封锁输出引脚有效,即把总线封锁,使别的控制器不能控制总线;直到该指令执行完后,总线封锁解除 暂停指令 HLT ;进入暂停状态 暂停指令使CPU进入暂停状态,这时CPU不进行任何操作。当CPU发生复位或来自外部的中断时,CPU脱离暂停状态 HLT指令可用于程序中等待中断。当程序中必须等待中断时,可用HLT,而不必用软件死循环。然后,中断使CPU脱离暂停状态,返回执行HLT的下一条指令 交权指令 ESC 6位立即数,reg/mem ;把浮点指令交给浮点处理器执行 浮点协处理器8087指令是与8086的整数

您可能关注的文档

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档