首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于循环位移指令ROL,RCL,该怎么解决

2013-01-25 
关于循环位移指令ROL,RCL书上说 ROL的功能为,对操作数进行循环左移,每执行一次,把最高位移到最低位,同时还

关于循环位移指令ROL,RCL
书上说 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的最低位

热点排行