- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]微机原理 逻辑移位及串操作
11、循环右移指令 ROR(ROtate/ROund Right) 格式:ROR d,count 功能:循环右移 说明:将操作数d的内容右移,最低位循环移入最高位,同时移入CF 例如: ROR SI,1 MOV CL,4 ROR BYTE PTR [DI],CL 1 CL SF、ZF、PF 、AF不受影响 CF = 移入的数值 OF= d不能是段寄存器和立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 CF D7 D15 D0 12、带进位循环左移指令 RCL(ROtate/ROund Carry Left) 格式:RCL d,count 功能:带进位循环左移 说明:将操作数d的内容左移,最高位循环移入CF,而CF循环移入最低位 例如: RCL BH,1 MOV CL,2 RCL DX,CL 1 CL SF、ZF、PF 、AF不受影响 CF = 移入的数值 OF= d不能是段寄存器和立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 CF D7 D15 D0 13、带进位循环右移指令 RCR(ROtate/ROund Carry Right) 格式:RCR d,count 功能:带进位循环右移 说明:将操作数d的内容左移,最低位循环移入CF,而CF循环移入最高位 例如: RCR BX,1 MOV CL,4 RCR WORD PTR[DI],CL 1 CL SF、ZF、PF 、AF不受影响 CF = 移入的数值 OF= d不能是段寄存器和立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 CF D7 D15 D0 串操作指令(5条) 数据串是存储器中一块字节或字的存储区域,其长度可以是1字节~64K字节。 串操作就是对数据串中每个元素所进行的操作,这种操作通常是组合操作,能完成几条指令的功能。 用作源操作数的串称为源串,源串默认放在数据段中(段地址在DS中),但可以段超越到其他段,源串的偏移地址指针必须放在SI中。 用作目的操作数的串称为目的串,目的串必须放在附加段中(段地址在ES中),目的串的偏移地址指针必须放在DI中。 串的长度(字节数或字数)必须放在CX中。 串操作可以按字节操作(助记符末尾字母加B),也可以按字操作(助记符末尾字母加W)。按字节操作时,地址指针加1或减1,按字操作时,地址指针加2或减2。 若方向标志DF=0,则按增址操作,地址指针加1或加2;若方向标志DF=1,则按减址操作,地址指针减1或减2。 8086共有5种基本的串操作指令,有的指令涉及到2个串,而有的只涉及到1个串。 有些串操作是在数据串与寄存器之间进行,则规定寄存器只能用累加器,字节操作时用AL,字操作时用AX。 串操作指令每次只处理一个元素的数据,为了能重复执行最多达64KB的串操作,8086还提供了3种重复前缀指令,使用这些指令可以使串操作指令重复执行由寄存器CX指定的次数。 除串比较和串搜索指令影响全部6个状态标志外,其它指令均不影响标志位。 方向标志设置指令: DF=0 CLD ;用于增址操作 DF=1 STD ;用于减址操作 重复前缀(3个) (1)重复 REP(REPeat) 格式:REP 串操作指令 功能:使串操作指令重复执行CX指定的次数 说明:若CX≠0则重复执行串指令,并置CX←CX-1,直到CX=0为止。REP指令主要用于串传送和串写入指令 例如:从数据段偏移地址1000H单元开始连续传送10个字节到附加数据段中。 MOV AX,6789H MOV DS,AX MOV AX,9876H MOV ES,AX MOV SI,1000H MOV DI,2000H MOV CX,10 CLD ;增址操作 REP MOVSB …… (2)相等则重复 REPE/REPZ(REPeat when Equal/Zero) 格式:REPE/REPZ 串操作指令 功能:若串操作指令执行结果相等,且CX指定次数未到,则重复执行串操作指令,直到结果不相等,或CX指定次数已到则停止 说明:若ZF=1且CX-1→CX≠0则重复执行串指令,直到ZF=0或CX-1→CX=0为止。REPE指令主要用于串比较和串搜索指令 例如:有两个字串要进行比较,看是否一样? I am a student ! I am a teacher ! 程序代码如下:
文档评论(0)