鹏哥聊车 發表於 2020-5-29 23:01:00

汇编语言-移位指令

<p>基本概念<br>移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。<br><br>基本格式 <br>格式为:xxx oper1,CL/1<br><br>移位次数只能是1或者存放在CL里面。<br><br>移位指令<br>一、算术移位指令<br>1、算术左移指令SAL<br>功能:左移一次,最低位补0,最高位送入CF标志位,如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529230805653-1635861686.png"><br><br>意义:左移n次,等于x2的n次幂。所以可用于有符号操作数做x2的n次幂运算。<br><br>2、算术右移指令SAR<br>功能:右移一次,最高位保持不变,最低位送入CF标志位,如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529230846415-1083362572.png"><br><br>意义:右移n次,等于/2的n次幂。所以可用于有符号操作数做/2的n次幂运算。<br><br>二、逻辑移位指令<br>1、逻辑左移指令SHL<br>功能:同SAL,如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529230913369-565144875.png"><br><br>意义:同SAL<br><br>2、逻辑右移指令SHR<br>功能:右移一次,最高位补0.区别!最低位送入CF标志位。如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529230939800-2084172133.png"><br><br>意义:用于实现无符号数/2的n次幂操作。<br><br>三、循环移位指令<br>1、循环左移指令ROL<br>功能:左移一次,左移前的最高位送入最低位以及CF.如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529231012832-725288100.png"><br><br>2、循环右移指令ROR<br>功能:右移一次,右移前的最低位送入最高位以及CF.如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529231054113-1046629675.png"><br><br>3、带进位的循环左移指令RCL<br>功能:左移一次,左移前的最高位送入CF,CF的内容送入最低位.如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529231119371-2095636457.png"><br><br>4、带进位的循环右移指令RCR<br>功能:右移一次,右移前的最低位送入CF,CF的内容送入最高位.如图:<br><br><img src="https://img2020.cnblogs.com/blog/1662945/202005/1662945-20200529231141169-1332609813.png"><br><br>四、双精度移位指令<br>1、双精度左移指令SHLD<br>&nbsp;<br><br>2、双精度右移指令SHRD<br><br></p><br><br>
来源:https://www.cnblogs.com/ganxiang/p/12990064.html
頁: [1]
查看完整版本: 汇编语言-移位指令