假定在一个8位字长的计算机中运行如下类C程序段: unsigned int x=134; unsigned int y=246; int m=x; int n=y; unsigned int z1=x-y; unsigned int z2=x+y; int

admin2015-12-30  32

问题 假定在一个8位字长的计算机中运行如下类C程序段:
unsigned int x=134;
unsigned int y=246;
int m=x;
int n=y;
unsigned int z1=x-y;
unsigned int z2=x+y;
int k1=m-n;
int k2=m+n;
若编译器编译时将8个8位寄存器R1~R8分别分配给变量x、y、m、n、z1、z2、k1和k2。
请回答下列问题。
(提示:带符号整数用补码表示。)
执行上述程序段后,寄存器R1、R5和R6的内容分别是什么(用十六进制表示)?

选项

答案134=128+6=10000110B,所以x的机器数为10000110B,故R1的内容为86H。246=255-9=1111 0110B,所以y的机器数为1111 0110B,x-y=10000110+000 1010=(0)1001 0000,括弧中为加法器的进位,故R5的内容为90H。x+y=10000110+1111 0110=(1)0111 1100,括弧中为加法器的进位,故R6的内容为7CH。

解析
转载请注明原文地址:https://kaotiyun.com/show/qzRi777K
0

相关试题推荐
最新回复(0)