假设有两个整数x和y,x=一68,y=一80,采用补码形式(含1位符号位)表示,x和y分别存放在寄存器A和B中。另外,还有两个寄存器C和D。A、B、C、D都是8位的寄存器。请回答下列问题:(要求最终用十六进制表示二进制序列)
问答题
寄存器A和B中的内容分别是什么?
【正确答案】正确答案:本题考查补码的机内表示、补码的运算和溢出判断。 因x=一68=一(100 0100)
2
,则[—68]
补
=1011 1100=BCH;因y=一80=一(101 0000)
2
,则[—80]
补
=10110000=BOH,所以寄存器A和B中的内容分别是BCH、BOH。
【答案解析】
问答题
x和y相加后的结果存放在C寄存器中,寄存器C中的内容是什么?此时,溢出标志位OF是什么?符号标志位SF是什么?进位标志位CF是什么?
【正确答案】正确答案:[x+y]
补
=[x]
补
+[y]
补
=1011 1100+10ll 0000=1 0110 1100=6CH,所以寄存器C中的内容是6CH,其真值为108。此时,溢出标志位OF为1,表示溢出,即说明寄存器C中的内容不是真正的结果;符号标志位SF为0,表示结果为正数(溢出标志为1,说明符号标志有错);进位标志位CF为1,仅表示加法器最高位有进位,对运算结果不说明什么。
【答案解析】
问答题
x和y相减后的结果存放在D寄存器中,寄存器D中的内容是什么?此时,溢出标志位OF是什么?符号标志位SF是什么?进位标志位CF是什么?
【正确答案】正确答案:[x—y]
补
=[x]
补
+[—y]
补
=1011 1100+0101 0000=1 0000 1100=0CH,最高位前面的一位被丢弃(取模运算),结果为12,所以寄存器D中的内容是0CH,其真值为12。此时,溢出标志位OF为0,表示不溢出,即:寄存器D中的内容是真正的结果;符号标志位SF为0,表示结果为正数;进位标志位CF为1,仅表示加法器最高位有进位,对运算结果不说明什么。
【答案解析】