村干部计算机上机考试题,计算机组织与系统结构第五章习题答案.doc

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

第 5 章 习 题 答 案

假定某计算机中有一条转移指令,采用相对寻址方式,共占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),CPU每次从内存只能取一个字节。假设执行到某转移指令PC的内容为200,执行该转移指令后要求转移到100开始的一段程序执行,则该转移指令第二字节的内容应该是多少?

参考答案:

→PC+1→取201单元的相对位移量→PC+1→计算转移目标地址。假设该转移指令第二字节100=200+2+Offset,Offset = 100–202 = –102 =

(注:没有说定长指令字,所以不一定是每条指令占2个字节。)假设地址为1200H的内存单元中的内容为12FCH,地址为12FCH的内存单元的内容为38B8H,而38B8H单元的内容为88F9H。说明以下各情况下操作数的有效地址是多少?

(1)操作数采用变址寻址,变址寄存器的内容为12,指令中给出的形式地址为1200H

(2)操作数采用一次间接寻址,指令中给出的地址码为1200H操作数采用寄存器间接寻址,指令中给出的寄存器编号为8,8号寄存器的内容为1200H参考答案:

有效地址EA=000CH+1200H=120CH

有效地址EA=(1200H)=12FCH,操作数为38B8H。

有效地址EA=1200H,操作数为12FCH。

通过查资料了解Intel 80x86微处理器和MIPS处理器中各自提供了哪些加法指令,说明每条加法指令的汇编形式、指令格式和功能,并比较加、减运算指令在这两种指令系统中不同的设计方式,包括不同的溢出处理方式。

MIPS:

Intel 80x86:

某计算机指令系统采用定长指令字格式,指令字长16位,每个操作数的地址码长6位。指令分二地址、单地址和零地址三类。若二地址指令有k2条,无地址指令有k0条,则单地址指令最多有多少条?– k2) ×26 – k1) ×26 = k0,所以 k1= (16 – k2) ×26 – k0/26

某计算机字长16位,每次存储器访问宽度16位,CPU中有8个16位通用寄存器。现为该机设计指令系统,要求指令长度为字长的整数倍,至多支持64种不同操作,每个操作数都支持4种寻址方式:立即(I)、寄存器直接(R)、寄存器间接(S)和变址(X),存储器地址位数和立即数均为16位,任何一个通用寄存器都可作变址寄存器,支持以下7种二地址指令格式:RR型、RI型、RS型、RX型、XI型、SI型、SS型。请设计该指令系统的7种指令格式,给出每种格式的指令长度、各字段所占位数和含义,并说明每种格式指令需要几次存储器访问?

参考答案:

指令格式可以有很多种,只要满足以下的要求即可。

操作码字段:6位寄存器编号:3位直接地址和立即数:16位变址寄存器编号:3位总位数是8的倍数 指令格式例1:

指令格式例2:

寻址方式字段(2位)----00:立即;01:寄直;10:寄间;11-变址

有些计算机提供了专门的指令,能从32位寄存器中抽取其中任意一个位串置于一个寄存器的低位有效位上,如下图所示。MIPS指令系统中没有这样的指令,请写出最短的一个MIPS指令序列来实现这个功能,要求i=5, j=22, 操作前后的寄存器分别为$s0和$s2。

参考答案:

可以先左移9位,然后右移15位sll $s2, $s0, 9

srl $s2, $s2, 15

思考:(1) 第二条用算术右移sra 行不行?

不行,因为不能保证高位补0!

(2) 若第一条指令中的$s2改成其他寄存器,则会带来什么问题?

所用寄存器的值被破坏!

以下程序段是某个过程对应的指令序列。入口参数int a和int b分别置于$a0和$a1中,返回参数是该过程的结果,置于$v0中。要求为以下MIPS指令序列加注释,并简单说明该过程的功能。答案:

1: 将t0寄存器置零

2: 如果a1的值等于零则程序转移到finish处

3: 将t0和a0的内容相加结果存放于t0

4: 将a1的值减1

5: 无条件转移到loop处

6: 将t0的内容加上100结果存放于t0

7: 将t0的值存放在v0

该程序的功能是计算100+a×b”

下列指令序列用来对两个数组进行处理,并产生结果存放在$v0中。假定每个数组有2500 个字,其数组下标为0到2499。两个数组的基地址分别存放在$a0和$a1中,数组长度分别存放在$a2和$a3中。要求为以下MIPS指令序列加注释,并简单说明该过程的功能。假定该指令序列运行在一个时钟频率为2GHz的处理器上,add、addi和sll指令的CPI为1;lw和bne指令的CPI为2,则最坏情况下运行所需时间是多少秒?

答案:

1: 将a2的内容左移2位即乘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值