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