移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。
使用移位指令,可以将数据中的内容向左或向右逐位移动(请参见“CPU 寄存器”)。
将数据中的内容左移相当于完成乘2 加权;将数据中的内容右移相当于完成除2 加
权的运算。例如,如果将十进制数值“3”的等效二进制数左移 3 位,则累加器中的结果是
十进制数“24”的二进制数。如果将十进制数值“16”的等效二进制数右移2 位,则累加
器中的结果是十进制数“4”的二进制数。
移位有循环左移,左移,循环右移,右移。比如你有一个数据是十六进制的FE,即二进制的11111110,那么它循环左移后为11111101,左移后为11111100,如果是十六进制的EF的话,即二进制的11101111,循环右移后为11011111,右移后为11011110。我说的都是字节(8位)的,其实还有字(16位)和双字(32位)的,原理都是一样的!你自己再分析一下。
geigejifenba 这个回答的是完美答案