What are the contents of the CCR and D3 after the following instructions sequence executes? Perform the calculation by hand and show your work.
MOVE.B #7,D3
CMPI.B #11,D3
我知道D3寄存器的内容将保持不变,我不知道如何进行计算以获得ccr标志。
可以somone请告诉我你是如何做到这一点的计算方法,以及为什么要设置标志。我真的很难理解这一点。
答案 0 :(得分:1)
D3
将由CMPI
保持不变,但由于7
,其低字节当然为MOVE
。 (感谢@unwind指出这一点。)
指令集引用将告诉您CMPI
通过从第二个操作数中减去第一个操作数来工作。它还说X
标志不受影响,其他标志根据结果设置如下:
N
:7-11 < 0
,所以N=1
Z
:7-11 != 0
,所以Z=0
V
:7-11=-4
,这是有符号数字的范围,V=0
C
:7-11=-4
,超出了无符号数范围C=1
。这些是标志的人类版本,cpu实际上使用按位逻辑:
N
:结果中最重要的一点。在2的补码表示中,负数具有MSB集。Z
:只是所有结果位的NAND
。如果所有位都为零,则Z=1
。V
:这个很棘手。 V=(-R7)*(-A7)*B7+R7*A7*(-B7)
,R7
是结果的MSB,A7
和B7
两个操作数的MSB。这意味着,如果从正数减去负数给出负数,或者如果从负数中减去正数,则表示有符号溢出。C
:减法的最终结果,又名。第9位。