《计算机组成与设计》习题解答

L=((24-M) ?24-N) ?24

13. 在一个单地址指令的计算机系统中有一个累加器,给定以下存储器数值:

单元20中的内容是40 单元30中的内容是50 单元40中的内容是60 单元50中的内容是70

求以下指令分别将什么数值装入到累加器中? (1) load #20 (2) load 20 (3) load (20) (4) load #30 (5) load 30 (6) load (30)

答:(1) 20 (2) 40 (3) 60 (4) 30 (5) 50 (6) 70

15. 一条双字长的指令存储在地址为W的存储器中。指令的地址字段位于地址为W+1处,用Y表示。在指令执行中使用的操作数存储在地址为Z的位置。在一个变址寄存器中包含X的值。试叙述Z是怎样根据其他地址计算得到的,假定寻址方式为

(1) 直接寻址 (2) 间接寻址 (3) 相对寻址 (4) 变址寻址

答:根据题意画出如下示意图:

WW+1变址寄存器XZ存储器?OP(操作码)Y(地址码)?A

(1) 在直接寻址方式下,指令中存放的就是操作数的地址。即操作数的地址Z在地址为W+1处,Z从指令中得到,所以有Z=Y。

(2) 在存储器间接寻址方式下,操作数的地址在某一个存储单元中,其地址在指令中。Z根据Y访存后得到,所以有Z = (Y)。

(3) 在相对寻址方式下,操作数的地址为PC的值(取完指令后PC的值为W+2)加上Y得到。所以有Z=W+Y+2。

(4) 在变址寻址方式下,操作数的地址为变址寄存器的值加上Y得到。所以有 Z=X+Y

16. 一条双字长的load指令存储在地址为200和201的存储位置,该指令将地址码指定的存储器内容装入累加器AC。指令的第一个字指定操作码和寻址方式,第二个字是地址部分。PC寄存器的值是200。通用寄存器R1的值是400,变址寄存器XR的内容是100,如下图所示。

地址PCR1XRAC200400100200201202309400500600702800主存load500M450700800900325300

指令的寻址方式字段可指定任何一种寻址方式。问在以下寻址方式下,装入AC的值。

a. 直接寻址 b. 立即数寻址 c. 相对寻址 d. 变址寻址

e. 寄存器(R1)寻址 f. 寄存器(R1)间接寻址

答:在直接寻址方式下,有效地址是指令中的地址码部分内容500,装入AC的操作数是800。

在立即数寻址方式下,指令的地址码部分就是操作数而不是地址,所以将500装入AC(实际上有效地址是201)。

在间接寻址方式下,操作数的有效地址存储在地址为500的单元中,由此得到有效地址800,操作数是300。

在相对寻址方式下,有效地址是500+202=702,所以操作数是325。在该指令的执行阶段,PC寄存器的内容已经更新为下一条指令的地址202。

在变址寻址方式下,有效地址是XR+500=100+500=600,操作数是900。 在寄存器寻址方式下,R1的内容400装入AC,这时不存在有效地址。

在寄存器间接寻址方式下,有效地址是R1的内容400,装入AC的操作数是700。

17. 一条相对转移指令长4个字节,存储在存储器中地址为75010的地方,转移目标地址为50010。问

(1) 指令读取之后PC的值为多少? (2) 指令的相对地址字段的值为多少?

(3) 该指令的相对地址字段需要多少二进制位?

答:(1) 该指令读取之后PC的值更新为75410。

(2) 相对转移指令中的地址偏移量应为 500 - 754 = -254

(3) 254 < 28,相对地址字段需要8个二进制位。

(4) 如果采用补码表示相对地址,则可以形成前向和后向的转移,即转移到该指令的前面以及后面。这样需要增加一个符号位,一共9位相对地址。

32. 某计算机系统的指令有三地址、二地址和单地址格式。

? 三地址指令有8条,用于数据运算,地址码都是采用寄存器寻址方式,有16个

通用寄存器,数据运算功能有加、减、乘、除、与、或、非、异或。

? 二地址指令有1条,用于数据传输,两个地址码各有4种寻址方式(寄存器、寄

存器间接、直接和存储器间接)。

? 单地址指令有2条,1条用于条件转移,采用相对寻址,转移条件在指令中用4

位编码表示,另一条用于无条件转移,采用寄存器寻址。存储器地址为32位。 试设计其指令格式,写出操作码及寻址方式编码方案。

答:本题可以有多种不同设计结果。设存储器地址为32位,下图所示是一种可能的结果。 三地址指令的操作码:0000,0001,0010,0011,0100,0101,0110,0111。寻址方式为寄存器寻址方式,有16个通用寄存器,所以采用4位寄存器号。指令长度为16位。 二地址指令的操作码为1000,2位代码m表示寻址方式,寄存器寻址和寄存器间接寻址采用4位寄存器号,直接和存储器间接寻址时采用32位存储器地址。指令长度有16位、44位、72位三种。 条件转移指令的操作码为1100,4位条件码,采用24位相对地址码,指令长度为32位。无条件转移指令的操作码为1110,4位寄存器号,指令长度为8位。

4 三地址 二地址 单地址1 单地址2 Opcode Opcode 4 Ra 2 4 Rb 4/32 A 4 Rc 2 4/32 A m 4 m 24 A Opcode cond Opcode Ra

33. 以下MIPS指令码代表什么操作?写出它的汇编指令表示。

0000 0000 1010 1111 1000 0000 0010 0000

34. 根据MIPS指令操作码定义以及指令格式,给出以下指令的各个字段的十进制值:

add $8, $17,$18

第七章

11. 对于单总线的CPU结构,写出执行以下带有间接访存寻址方式的指令的执行过程。

(1) ADD R1,(mem)

(2) STORE (mem),R1

答: (1) 指令的含义是将R1的内容加上存储器中的内容,结果写入R1,存储器采用间接

寻址。执行步骤是

PC→MAR,读

PC+1→PC DBUS→MDR MDR→IR IR(地址段)→MAR,读 DBUS→MDR MDR→MAR,读 DBUS→MDR MDR→Y R1+Y→Z Z→R1 (2) 指令的含义是将R1的内容写入存储器,存储器采用间接寻址。执行步骤是 PC→MAR,读 PC+1→PC DBUS→MDR MDR→IR IR(地址段)→MAR,读 DBUS→MDR MDR→MAR R1→MDR,写

注意:可以有不同的执行流程,但是指令执行过程中不可使用指令没有指定的通用寄存器,

如不可以将读取的直接地址放入通用寄存器R2。

13. 在单总线的CPU结构中,如果加法指令中的第二个地址码有寄存器寻址、寄存器间接寻址和存储器间接寻址这三种寻址方式,并在指令中用代码表示指令的寻址方式,即该指令可实现如下功能:

(1) ADD R1,R2 ; R1+R2→R1 (2) ADD R1,(R2) ; R1+(R2)→R1 (3) ADD R1,(mem) ;R1+(mem) →R1 试设计执行这条指令的流程图。

答:在第一种寻址方式下指令的执行过程是:

PC→MAR,读 PC+1→PC

DBUS→MDR→IR R2→Y

R1 + Y→Z Z→R1

在第二种寻址方式下指令的执行过程是:

PC→MAR,读 PC+1→PC

DBUS→MDR→IR

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4