当前位置:文库下载 > 所有分类 > 高等教育 > 理学 > 第3章习题答案 计算机组成原理课后答案(清华大学出版社 袁春风主编)
侵权投诉

第3章习题答案 计算机组成原理课后答案(清华大学出版社 袁春风主编)

第 3 章 习 题 答 案

2(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序P中有乘、除运算,但机器M中不提供乘、除运算指令,则程序P能否在机器M上运行?为什么? 参考答案:(略)

3.考虑以下C语言程序代码: int func1(unsigned word) { return (int) (( word <<24) >> 24); }

int func2(unsigned word) { return ( (int) word <<24 ) >> 24; }

假设在一个32位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑移

位,带符号整数采用算术移位。请填写下表,并说明函数func1和func2的功能。

W 机器数 0000 007FH 0000 0080H 0000 00FFH 0000 0100H

值 127 128 255 256

func1(w) 机器数 0000 007FH 0000 0080H 0000 00FFH 0000 0000H

值 +127 +128 +255 0

func2(w) 机器数 0000 007FH FFFF FF80H FFFF FFFFH 0000 0000H

值 +127 –128 –1 0

函数func1的功能是把无符号数高24位清零(左移24位再逻辑右移24位),结果一定是正的有符号数;

而函数func2的功能是把无符号数的高24位都变成和第25位一样,因为左移24位后进行算术右移,高24位补符号位(即第25位)。

4.填写下表,注意对比无符号数和带符号整数的乘法结果,以及截断操作前、后的结果。

模式

机器数

无符号数 二进制补码 无符号数 二进制补码 无符号数 二进制补码

110 110 001 001 111 111

x

值 6 –2 1 +1 7 –1

机器数 010 010 111 111 111 111

y

值 2 +2 7 –1 7 –1

x×y(截断前) 机器数 001100 111100 000111 111111 110001 000001

值 12 –4 7 –1 49 +1

x×y(截断后) 机器数 100 100 111 111 001 001

值 4 –4 7 –1 1 +1

5.以下是两段C语言代码,函数arith( )是直接用C语言写的,而optarith( )是对arith( )函数以某个确定的

M和N编译生成的机器代码反编译生成的。根据optarith( ),可以推断函数arith( ) 中M和N的值各是多少?

61

第1页

猜你喜欢

返回顶部