问答题 假设有两个整数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] =1011 0000=B0H,所以寄存器A和B中的内容分别是BCH、B0H。
问答题 x和y相加后的结果存放在C寄存器中,寄存器C中的内容是什么?此时,溢出标志位OF是什么?符号标志位SF是什么?进位标志位CF是什么?
【正确答案】
【答案解析】[x+y] =[x] +[y] =1011 1100+1011 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,仅表示加法器最高位有进位,对运算结果不说明什么。 [解析] 本题考查补码的机内表示、补码的运算和溢出判断。