汇编指令:
(注意,所有移位指令,被移出去的那个位上的值,会被赋值给CF标志位)
逻辑左移:SHL(右边补0)
算术左移:SAL(1、寄存器中自动转换成SHL,左移不存在算术左移,所有左移都是SHL;)
逻辑右移:SHR(左边补0)
算术右移:SAR(左边补符号位)
循环移位左移:rol(左移一位,右边补移出去的位的值)
循环移位右移:ror(r有移一位,做边补移出去的位的值)
带进位移位左移:rcl(左移一位,右边补位的值是CF中的值)
带进位移位右移:rcr(右移一位,左边补位的值是CF中的值)
C语言中左移:a<<n
C语言中右移:a>>n
本文深入探讨了汇编语言中的移位指令,包括逻辑左移(SHL)、算术左移(SAL)、逻辑右移(SHR)、算术右移(SAR)以及循环移位(ROL和ROR)。同时,对比了C语言中的左移运算符(<<)和右移运算符(>>). 文章强调了不同移位操作的区别,特别是带进位移位(RCL和RCR)与普通移位的区别,以及在处理二进制数据时的注意事项。
1万+

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



