1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 关于循环位移指令ROL RCL ;逻辑右移指令 SHR 算术右移指令 SAR

关于循环位移指令ROL RCL ;逻辑右移指令 SHR 算术右移指令 SAR

时间:2021-01-23 13:32:47

相关推荐

关于循环位移指令ROL RCL ;逻辑右移指令 SHR   算术右移指令 SAR

关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR

书上说 ROL的功能为,对操作数进行循环左移,每执行一次,把最高位移到最低位,同时还把最高位移到CF

那么 CF=0 AL=10100000

ROL AL,1 AL的内容为? CF为?

CF=0 AL=10100000 CL=2

ROL AL,CL AL的内容为?CF为?

而 CF=1 CF=0 AL=10100000

RCL AL,1 后 AL的内容? CF为?

CF=1 AL=10100000 CL=2

RCL AL,CL 后 AL的内容?CF?

------解决方案--------------------

在debug下一试便知,且会加深印象。

AL=10100000时,

ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;

ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。

RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 000X,最后空下的X位被CF原来的值补齐;

同样,ROL AL,CL(CL=2),相当于2次 RCL AL,1,最后AL变成 1000 00X1,AL原第二位的0到了CF,CF原来的值补AL中的x。

------解决方案--------------------

探讨

在debug下一试便知,且会加深印象。

AL=10100000时,

ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;

ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。

RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 00……

------解决方案--------------------

RCL AL,1 会把CF中的数据移到AL的最低位

SHR 逻辑右移指令

SAR 算术右移指令

SHR 和 SAR都是右移指令。

只不过SHR右移的时候,它的最高位用0填补,最低位移入CF

而SAR右移的时候,最高位不变,最低位移入CF

例如, AL = 1110 1110, BL = 0110 1100, CL = 2

SHR AL, CL后

AL = 0011 1011 SHR最高位用0填补

SAR AL,CL

AL = 1111 1011 SAR最高位不变

SAR BL,CL

BL = 0011 1011 SAR最高位不变

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。