SHL,SAL分别是逻辑左移和算术左移,运行结果是一样的,都是数据往左移动,然后在右边补零;
SHR是逻辑右移,数据往右移动,在左边补零。如:1000 0000->0010 0000(逻辑右移两位)
SAR是算术右移,比较特殊。他的最高位一直是不变的。如1000 0000算术右移7位后就成了1111 1111.
循环左移指令:ROL DEST,COUNT
指令功能:把目的地址中的数据循环左移COUNT次,每次从最高位(最左)移出的数据位都补充到最低位(最右),最后从最高位(最左)移出的数据位保存到CF标志位。
标志位影响:CF标志用于保存最后从最高位移出的数据位。如果COUNT=1,OF标志有意义,如果移位前后数据的符号位发生了变化,OF=1;如果符号位没有发生变化,OF=0。如果COUNT>1,OF标志不确定(没有意义)。
循环左移指令:ROL DEST,COUNT.
指令功能:把目的地址中的数据循环右移COUNT次,每次从最低位(最右)移出的数据位都补充到最高位(最左),最后从最低位(最右)移出的数据位保存到CF标志位。
标志位影响:CF标志用于保存最后从最低位移出的数据位。如果COUNT=1,OF标志有意义,如果移位前后数据的符号位发生了变化,OF=1;如果符号位没有发生变化,OF=0。如果COUNT>1,OF标志不确定(没有意义)。
本文详细介绍了计算机中常见的位操作指令,包括逻辑左移(SHL)、算术左移(SAL)、逻辑右移(SHR)、算术右移(SAR)以及循环左移(ROL)和循环右移(ROR)指令的功能和应用场景。特别强调了这些指令在处理二进制数据时的重要性。
1万+

被折叠的 条评论
为什么被折叠?



