好文档 - 专业文书写作范文服务资料分享网站

计算机组织与系统结构第三章习题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

精品文档

第 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; }

AHA12GAGGAGAGGAFFFFAFAF

精品文档

假设在一个32位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑移位,带符号整数采用算术移位。请填写下表,并说明函数func1和func2的功能。

W 机器数 值 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 0000 007FH 127 0000 0080H 128 0000 00FFH 255 0000 0100H 256 函数func1的功能是把无符号数高24位清零(左移24位再逻辑右移24位),结果一定是正的有符号数;而函数func2的功能是把无符号数的高24位都变成和第25位一样,因为左移24位后进行算术右移,高24位补符号位(即第25位)。

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

AHA12GAGGAGAGGAFFFFAFAF

精品文档

操作前、后的结果。

x×y(截断x y x×y(截断前) 后) 模式 机器值 数 数 数 无符号110 数 二进制110 补码 无符号001 数 二进制001 补码 无符号111 7 111 7 110001 49 001 1 +1 111 –1 111111 –1 111 –1 1 111 7 000111 7 111 7 –2 010 +2 111100 –4 100 –4 6 010 2 001100 12 100 4 机器值 机器数 值 器值 机AHA12GAGGAGAGGAFFFFAFAF

精品文档

数 二进制111 补码

–1 111 –1 000001 +1 001 +1 5.以下是两段C语言代码,函数arith( )是直接用C语言写的,而

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

AHA12GAGGAGAGGAFFFFAFAF

精品文档

#define M #define N

int arith (int x, int y) {

int result = 0 ; result = x*M + y/N; return result; }

int optarith ( int x, int y) {

int t = x; x << = 4; x - = t;

AHA12GAGGAGAGGAFFFFAFAF

计算机组织与系统结构第三章习题答案

精品文档第3章习题答案2(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序P中有乘、除运算,但机器M中不提供乘、除运算指令,则程序P能否在机器M上运行?为什么?参考答案:(略)3.考虑以下C语言程序代码:intfunc1(unsignedword){
推荐度:
点击下载文档文档为doc格式
4ffrp8l17q9kfa2517te4mn0g1mmhw00jkt
领取福利

微信扫码领取福利

微信扫码分享