首页 汇编言语——移位指令

汇编言语——移位指令

举报
开通vip

汇编言语——移位指令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之外,...

汇编言语——移位指令
7.1移位指令7.1.1逻辑左移【指令格式】SHL d1,d2【功能】把操作数d1的各个二进制位依次向左移动d2位,移动造成右边的空位填0,结果放回操作d1中。【说明】(1)操作数d1必须是通用寄存器或内存型寻址方式,必须有确定的类型,可以是字节型,也可以是字型,并且对内存型寻址方式可以使用段跨越。(2)操作数d2 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示移动的位数,只能是立即数1或者寄存器CL,当移动位数超过1位时,必须把移动位数放在CL中,以CL作为d2操作数。(3)操作数d1各位移动的情况如图7.1所示,从最高位起,将有d2位移到操作数d1之外,除了最后移出的一位放到标志位CF中之外,其余各位均被丢弃,移动造成右边的空位用0填充。……位号:15/714/6100CF操作数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,CF=0,AH不变SHLAX,1移位后,AX=1AACH,CF=1SHLAH,CL移位后,AH=68H,CF=0,AL不变SHLAX,CL移位后,AX=6AD0H,CF=07.1.2算术左移【指令格式】SALd1,d2【说明】这是一条与SHL完全相同的指令,该指令与SHL指令是同一条机器指令的两种不同写法。7.1.3逻辑右移【指令格式】SHRd1,d2【功能】把操作数d1的各个二进制位依次向右移动d2位,移动造成左边的空位填0,结果放回操作数d1中。【说明】(1)对两个操作数的语法限制以及对标志位的设置情况都与SHL指令相同,见SHL指令说明的(1)、(2)和(5)。(2)SHR指令在位的移动方向上与SHL指令刚好相反,其它方面则很类似,向右移出的最后一位放到CF中,右移造成左边的空位以0填充,如图7.2所示。(3)移动后的值是把d1中的原值作为无符号数,除以的商。位号:15/714/610操作数d1CF图7.2逻辑右移指令SHR的功能……7.1.4算术右移【指令格式】SARd1,d2【功能】把操作数d1的各个二进制位依次向右移动d2位,移动造成左边的空位填d1原值的最高位,结果放回操作d1中。【说明】SAR指令的功能基本上与SHR的一样,仅仅是移动造成的空位填充方式不同,如果操作数d1移动前最高位是1,则移动造成的空位以1填充,否则以0填充,如图7.3所示。SAR指令执行的结果是把d1中的原值作为带符号数,除以并把除法的商放回d1中。位号:15/714/610…………操作数d1CF图7.3算术右移指令SAR的功能7.1.5循环左移【指令格式】ROL d1,d2【功能】把操作数d1的各个二进制位向左移动d2位,从d1左端移出的每一位再依次移到右端空出的位上,最后移出的一位还要送到CF中。可以把d1的各位看作是首尾相接的一个环状,如图7.4所示,把各位的值按逆时针方向旋转d2格,再从环原先的连接部断开,可以得到ROL指令执行后的结果。14/615/7CF01图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/615/7CF01图7.5带有CF的循环左移指令RCL的功能……7.1.8带进位的循环右移【指令格式】RCR d1,d2【功能】把操作数d1的各位与CF联合在一起,构成9个或者17个二进制位,向右移动d2位,从右端移出的各位再依次移到左端空出的位上。带进位CF的循环右移指令的功能可以参照图7.5,把移动方向改为顺时针即可。逻辑移位与算术移位指令除了功能本身描述的二进制位的移动之外,还用于把一个字节型或字型数据乘以/除以2n。乘除法指令是所有8088指令中最耗时的,所花费的时间是加减法的20~30倍,是移位指令的35~50倍,因此如果能用移位指令和加减法指令代替乘除法指令,将大大提高程序的执行速度。
本文档为【汇编言语——移位指令】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
mtgh0618
暂无简介~
格式:ppt
大小:230KB
软件:PowerPoint
页数:14
分类:
上传时间:2023-03-02
浏览量:0