计算机组成原理及汇编语言程序设计 179页4-20题 假设(AX)=0A5C6H,(CX)=0F03H,有以下程序段:

题目:

4-20 假设(AX)=0A5C6H,(CX)=0F03H,有以下程序段:

STC
RCL    AX,CL
AND    CH,CL
RCR    AX,CL

上述程序执行后,(AX)=________,CF=_____________。

解析:

关键点:

STC:设置CF=1

0-16的二进制数:

1=1
2=10
3=11
4=100
5=101
6=110
7=111
8=1000
9=1001
10=1010
11=1011
12=1100
13=1101
14=1110
15=1111
16=10000

快速记忆:

2=10,2*2=4=100,2*4=8=1000,2*8=16=10000

RCL:带进位循环左移,移动多少位?看低8位的数,比如题中的AX=0A5C6H=1010 0101 1100 0110,由此得出高8位AH=1010 0101,低8位AL=1100 0110,所以AX高8位=1010 0101,低8位=1100 0110

十六进制转二进制:十六进制一个位对应二进制4个为,不够则补0

RCR:带进位循环右移

与(AND):两个都为1得1

或:有一个1就是1

STC    //CF=1

执行完后CF=1

RCL        AX,CL

RCl表示AX带符号循环左移CL位

由于(CX)=0F03H=0000 1111 0000 0011

得出高8位为CH=0000 1111,CL=0000 0011

CL=11(二进制)=3(十进制)左移CL(3)位

AX=1010 0101 1100 0110

再加上CFCF=1

AX=1 1010 0101 1100 0110进行循环左移3位=>

AX=10 0101 1100 0110 1 10 ,CF=1

AND        AH,CH     //AH,CH与操作

AH=AH &&CH,AH与CH的结果放入AH中

AX=1 0010 1110 0011 0110CF=1

AX=0010 1110 0011 0110可得出高8位AH和低8位AL,无需带符号

AH=0010 1110

AL=0011 0110

CX=0F03H=0000 1111 0000 0011

CH=0000 1111

CL=0000 0011

AH=CH与AH,2个数都为1,则为1,其余都为0,0000 1111&&0010 1110=0000 1110=AH,计算过程如下:

0000 1111

0010 1110

0000 1110

注意:执行AND操作后,CF和OF置0

AH=0000 1110

RCR        AX,CL

CL=0000 0011

由上面AH=CH与AH,得新的AH=0000 1110,替换AH

AX=0010 1110 0011 0110,替换高8位

AX=0 0000 1110 0011 0110,CF=0,由于执行AND操作后,CF和OR都置0

执行RCR        AX,CL=>执行AX右移CL=0000 0011(3)位,得

110 0 0000 1110 0011 0,CF=1

去掉符号CF=1得

AX=10 0 0000 1110 0011 0,CF=1

转换为十六进制:

AX=1000 0001 1100 0110

最后答案为:

AX=81C6H,CF=1

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小星博博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值