专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

汇编语言ROL(循环左移)指令:将操作数所有位都向左移

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/17 15:36:48       共计:3628 浏览
以循环方式来移位即为位元循环(Bitwise Rotation)。一些操作中,从数的一端移出的位立即复制到该数的另一端。还有一种类型则是把进位标志位当作移动位的中间点。

ROL(循环左移)指令把所有位都向左移。最高位复制到进位标志位和最低位。该指令格式与 SHL 指令相同:


位循环不会丢弃位。从数的一端循环出去的位会出现在该数的另一端。在下例中,请注意最高位是如何复制到进位标志位和位 0 的:

mov al,40h        ; AL = 01000000b
rol al,1               ; AL = 10000000b, CF = 0
rol al,1               ; AL = 00000001b, CF = 1
rol alz1              ; AL = 00000010b, CF = 0

循环多次

当循环计数值大于 1 时,进位标志位保存的是最后循环移出 MSB 的位:

mov al,00100000b
rol al,3           ; CF = 1, AL = 00000001b

位组交换

利用 ROL 可以交换一个字节的高四位(位 4?7)和低四位(位 0?3)。例如,26h 向任何方向循环移动 4 位就变为 62h:

mov al, 26h
rol al, 4          ; AL = 62h

当多字节整数以四位为单位进行循环移位时,其效果相当于一次向右或向左移动一个十六进制位。例如,将 6A4Bh 反复循环左移四位,最后就会回到初始值:

mov ax, 6A4Bh
rol ax, 4              ; AX = A4B6h
rol ax, 4              ; AX = 4B6Ah
rol ax, 4              ; AX = B6A4h
rol ax, 4              ; AX = 6A4Bh

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:汇编语言ROR(循环右移)指令:将操作数所有位都向右移 | ·下一条:汇编语言SAL(算术左移)和SAR(算术右移)指令:将操作数左/右移一位

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有