假定在一个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  22

问题 假定在一个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。
请回答下列问题。
(提示:带符号整数用补码表示。)
上述程序段涉及带符号整数加/减、无符号整数加/减运算,这四种运算能否利用同一个加法器及辅助电路实现?简述理由。

选项

答案能。11位加法器实现的是模2n无符号整数加法运算。对于无符号整数a和b,a+b可以直接用加法器实现,而a-b可用a加b的补数实现,即a-b=a+[b](mod 2n),所以n位无符号整数加,减运算都可在n位加法器中实现。 由于带符号整数用补码表示,补码加/减法运算公式为:[a+b]=[a]+[b](mod 2n),[a-b]=[a]+[-b](mod 2n),所以n位带符号整数加/减运算都可在n位加法器中实现。

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

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