1.
某字长为8位的计算机中,x和y为无符号整数,已知x=68,y=80,x和y分别存放在寄存器A和B中。请回答下列问题(要求最终用十六进制表示二进制序列)。
(1)寄存器A和B中的内容分别是什么?
(2)若x和y相加后的结果存放在寄存器C中,则寄存器C中的内容是什么?运算结果是否正确?此时,零标志ZF是什么?加法器最高位的进位C是什么?
(3)若x和y相减后的结果存放在寄存器D中,则寄存器D中的内容是什么?运算结果是否正确?此时,零标志ZF是什么?加法器最高位的进位C是什么? (4)无符号整数加/减运算时,加法器最高位进位C的含义是什么?它与进/借位标志CF的关系是什么?(5)无符号整数一般用来表示什么信息?为什么通常不对无符号整数的运算结果判断溢出?
【分析解答】
(1)x
= 68 = 0100 0100 B = 44H;y
= 80 = 0101 0000 B = 50H。所以,寄存器A和B中的内容分别是44H和50H。
(2)x + y = 0100 0100 + 0101 0000 = (0) 1001
0100 = 94H,所以,寄存器C中的内容为94H,对应的真值为148,运算结果正确。因为结果不为0,所以ZF=0;加法器最高位的进位C为0。
(3)x–y
= x + [– y]补 =
0100 0100 + 1011 0000 = (0) 1111 0100 = F4H,所以,寄存器D中的内容为F4H,对应的真值为244,运算结果不正确,这是因为相减结果为负数造成的。因为结果不为0,所以ZF=0;加法器最高位的进位C为0。
(4)在加法器中进行无符号整数加法运算时,若加法器最高位进位C=1,则表示实际结果大于最大可表示数255;在加法器中进行无符号整数减法运算时,若加法器最高位进位C=1,则表示被减数大于减数,反之被减数小于减数。因此,在无符号数相加时,CF就等于C,表示进位;在无符号数相减时,通常将最高进位C取反来作为借位标志CF,也即,无符号整数相减时,CF=C,CF=1表示有借位。
(5)无符号整数一般用来表示地址(指针)信息,当两个地址相加结果大于最大地址而取低位地址时,相当于取模,也即采用地址循环运算。因此通常不需要判断其运算结果是否溢出,即不考虑溢出标志OF。
1.
假设某字长为8位的计算机中,带符号整数采用补码表示,x=
–68,y=
–80,x和y分别存放在寄存器A和B中。请回答下列问题(要求最终用十六进制表示二进制序列)。
(1)寄存器A和B中的内容分别是什么?
(2)若x和y相加后的结果存放在寄存器C中,则寄存器C中的内容是什么?运算结果是否正确?此时,溢出标志OF、符号标志SF和零标志ZF各是什么?加法器最高位的进位C是什么?
(3)若x和y相减后的结果存放在寄存器D中,则寄存器D中的内容是什么?运算结果是否正确?此时,溢出标志OF、符号标志SF和零标志ZF各是什么?加法器最高位的进位C是什么?
(4)若将加法器最高位的进位C作为进位标志CF,则能否直接根据CF的值对两个带符号整数的大小进行比较?




