catch 发表于 2014-1-16 20:30:24

汇编里的循环左移什么意思?

本帖最后由 catch 于 2014-1-16 20:31 编辑

循环左移就是把要移的数换成二进制,比如八位二进制数左移1位,各个数都向左移动1位,标志位CF填入你那个数的最高位(1或0),最低位补填入也是你原来那个二进数的最高位数,例如八位二进数11000100向左循环左移1位,CF=1,这个数变为10001001,很详细了吧~
循环左移/右移指令只是移位方向不同,它们移出的位不仅要进入CF,而且还要填补空出的位。

MOV AL,82H
ROL AL,1
MOV AL,82H
ROR AL,1
首先把82H转换成二进制数10000010B循环左移1位后变成:00000101B,换算成十六进制数便是05H
循环右移1位后变成:01000001B,换算成十六进制数便是41H

循环的话就好象一些人排队领东西,领完了返回队位继续排(当然一只是这几个人排);不循环就是领完就走人,空出位置来。




页: [1]
查看完整版本: 汇编里的循环左移什么意思?