暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

计算概论2

原创 会说话的燕子 2022-11-26
933

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的值对两个带符号整数的大小进行比较?

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论