永发信息网

汇编shl位移指令?

答案:2  悬赏:80  手机版
解决时间 2021-04-27 08:35
  • 提问者网友:龅牙恐龙妹
  • 2021-04-26 12:55

下面的三个例子
(1)mov al,01001000b
shl al,1
执行后al=10010000b,cf=0
(2)接着上面的再执行一条shal al,1。则执行后al=00100000b,cf=1
(3)mov al,01010001b
mov cl,3
shl al,cl
执行后al=10001000b,因为最后移出的是1,所以cf=1.
我的问题是第(3)个例子中,最后移出的不是0吗?怎么是1?

在杨季文的《8086汇编程序设计》也有个例子:

mov al,8ch ;al=8ch

shl al,1 ;al=18h,cf=1,pf=1,zf=0,sf=0,of=1

mov cl,6 ;

shl al,cl ;al=0,cf=0,pf=1,zf=1,sf=0,of=0

我完全搞不懂CF的值到底是取哪一位的?

我新手理解能力差,请不要贱笑

最佳答案
  • 五星知识达人网友:夜余生
  • 2021-04-26 14:16

我觉得你的理解是对的,应该是书上例题有错误


(3)mov al,01010001b
mov cl,3
shl al,cl
执行后al=10001000b,因为最后移出的是0,所以cf=0

全部回答
  • 1楼网友:渡鹤影
  • 2021-04-26 14:23

mov al,01001000b shl al,1

移一次就将al将最高位移入CF 执行后al=10010000b,cf=0

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯