假定一个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。请回答下列问题。(提示:带符号整数用补码表示。)
1.执行上述程序段后,寄存器R1、R5和R6的内容分别是什么(用十六进制表示)?
2.执行上述程序段后,变量m和k1的值分别是多少(用十进制表示)?
3.计算机内部如何判断带符号整数加,减运算的结果是否发生溢出?上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?