汇编言语-移位指令.ppt_第1页
汇编言语-移位指令.ppt_第2页
汇编言语-移位指令.ppt_第3页
汇编言语-移位指令.ppt_第4页
汇编言语-移位指令.ppt_第5页
已阅读5页,还剩9页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7.1 移位指令 7.1.1 逻辑左移 【指令格式】SHL d1, d2 【功能】把操作数d1的各个二进制位依次向左移动d2位,移动造成右边的空位填0,结果放回操作d1中。 【说明】 (1)操作数d1必须是通用寄存器或内存型寻址方式,必须有确定的类型,可以是字节型,也可以是字型,并且对内存型寻址方式可以使用段跨越。,(2)操作数d2表示移动的位数,只能是立即数1或者寄存器CL,当移动位数超过1位时,必须把移动位数放在CL中,以CL作为d2操作数。 (3)操作数d1各位移动的情况如图7.1所示,从最高位起,将有d2位移到操作数d1之外,除了最后移出的一位放到标志位CF中之外,其余各位均被丢弃,移

2、动造成右边的空位用0填充。,位号: 15/7 14/6 1 0,0,CF操作数d1,(4)移动后d1中的数据是在其原值的后面加了d2个0,即把原数值扩大了倍,当扩大后的值超过表示范围时,超过d1类型(字节或字)规定位数的高位部分会自动丢失。 (5)该指令对其余标志位的影响情况是:移动后的结果为0则ZF置1,否则ZF清0;移动后d1最高位的值会复制到SF上;如果移动前后d1的最高位不同则OF置1,否则OF清0。 移位指令涉及数值计算问题,但并不复杂。比如AX的值是8D56H,CL的值是3,则下面几条指令是SHL指令的正确用法,后面也给出了移位后的结果: SHLAL,1 移位后,AL = 0ACH

3、,CF = 0,AH不变 SHLAX,1 移位后,AX = 1AACH,CF = 1 SHLAH,CL 移位后,AH = 68H,CF = 0,AL不变 SHLAX,CL 移位后,AX = 6AD0H,CF = 0,7.1.2 算术左移 【指令格式】SAL d1, d2 【说明】这是一条与SHL完全相同的指令,该指令与SHL指令是同一条机器指令的两种不同写法。,7.1.3 逻辑右移 【指令格式】SHR d1, d2 【功能】把操作数d1的各个二进制位依次向右移动d2位,移动造成左边的空位填0,结果放回操作数d1中。 【说明】 (1)对两个操作数的语法限制以及对标志位的设置情况都与SHL指令相同

4、,见SHL指令说明的(1)、(2)和(5)。 (2)SHR指令在位的移动方向上与SHL指令刚好相反,其它方面则很类似,向右移出的最后一位放到CF中,右移造成左边的空位以0填充,如图7.2所示。,(3)移动后的值是把d1中的原值作为无符号数,除以的商。,位号:15/7 14/6 1 0,操作数d1 CF,图7.2 逻辑右移指令SHR的功能,7.1.4 算术右移 【指令格式】SAR d1, d2 【功能】把操作数d1的各个二进制位依次向右移动d2位,移动造成左边的空位填d1原值的最高位,结果放回操作d1中。 【说明】SAR指令的功能基本上与SHR的一样,仅仅是移动造成的空位填充方式不同,如果操作数

5、d1移动前最高位是1,则移动造成的空位以1填充,否则以0填充,如图7.3所示。SAR指令执行的结果是把d1中的原值作为带符号数,除以并把除法的商放回d1中。,位号:15/7 14/6 1 0,操作数d1 CF,图7.3 算术右移指令SAR的功能,7.1.5 循环左移 【指令格式】ROL d1, d2 【功能】把操作数d1的各个二进制位向左移动d2位,从d1左端移出的每一位再依次移到右端空出的位上,最后移出的一位还要送到CF中。 可以把d1的各位看作是首尾相接的一个环状,如图7.4所示,把各位的值按逆时针方向旋转d2格,再从环原先的连接部断开,可以得到ROL指令执行后的结果。,14/6,15/7

6、,CF,0,1,图7.4 循环左移指令ROL的功能,7.1.6 循环右移 【指令格式】ROR d1, d2 【功能】把操作数d1的各个二进制位向右移动d2位,从右端移出的各位再依次移到d1右端空出的位上,最后移出的一位还要送到CF中。 ROR是循环右移指令,与ROL指令相比,只是移位的方向不同,把图7.4中的移动方向改为顺时针方向,从第0位上最后一次移出的位送到CF中,就是ROR指令的功能。,7.1.7 带进位的循环左移 【指令格式】RCL d1,d2 【功能】把操作数d1的各位与CF联合在一起,构成9个或者17个二进制位,向左移动d2位,从左端移出的各位再依次移到右端空出的位上。 从功能上说,可以把d1的各位与CF一起,看作首尾相接的一个环状,如图7.5所示,把各位按逆时针方向旋转d2格,再从环原先的连接部断开,可以得到ROL指令执行后的结果,包括CF的设置情况。,14/6,15/7,CF,0,1,图7.5 带有CF的循环左移指令RCL的功能,7.1.8 带进位的循环右移 【指令格式】RCR d1, d2 【功能】把操作数d1的各位与CF联合在一起,构成9个或者17个二进制位,向右移动d2位,从右端移出的各位再依次移到左端空出的位上。 带进位CF的循环右移指令的功能可以参照图7.5,把移动方向改为顺时针即可。 逻辑移位与算术移位指令除了功能本身描述的二进制位的移动之外

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论