计算机组成原理作业详细答案(讲)
第三章参考答案
【3-9】
某机字长为16 位,主存容量为64K 字,采用单字长单地址指令,共有50条指令。若有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。
解:
【3-10】
某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。试说明:(1)若只采用直接寻址方式,指令能访问多少主存单元?
(2)为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少?
(3)采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令寻址范围为多少?指令直接寻址范围为多少?
(4)采用(2)、(3)两种方式结合,指令的寻址范围为多少?指令直接寻址范围为多少?解:(1)分析:指令共有64条,需要操作码6位;指令格式为单字长单地址,而机器字长为16位,所以地址码部分10位。
6位10位
若采用直接寻址方式,即:形式地址等于有效地址,EA=A,所以指令能访问的主存单元为
10
2=1K
字
(2)为扩充指令的寻址范围,采用直接/间接寻址方式,若只增加一位直接/间接标志,指令格式如图所示:
6位1位9位
指令直接寻址的范围为
9
2=512字。
由于存储单元存储16位字,间接寻址的最大寻址范围是16
2=64K字。
(3)采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令格式如下如所示:
6位 1位 9位
由于A 为9 位,所以直接寻址的范围是92=512字 。
由于:A PC EA H //)( ,是16位,所以指令可寻址范围162=64K 字。
(4)采用(2) 、(3) 两种方式结合,此时需要@ 和Z /C 两个标志位,
指令格式如下如所示:
6位 1位 1位 8位
直接寻址范围是82;指令可寻址范围仍为162
=64K 字。
【3-12】
已知某小型机字长为16位,其双操作数指令的格式如下:
6位 2位 8位
其中:OP 为操作码,R 为通用寄存器地址。试说明下列各种情况下能访问的最大主存区域有多少机器字?
(1) A 为立即数。
(2) A 为直接主存单元地址。
(3) A 为间接地址(非多重间址) 。
(4) A 为变址寻址的形式地址,假定变址寄存器为R 1 (字长为16位)
解:(1)A 为立即数,由于是包含在指令中,所以能访问的主存区域1个机器字。
(2)A 为直接主存单元地址,能访问的最大主存区域为82(256字)
(3)若A 为间接地址(非多重间址),EA=(A )为16位,所以能访问的最大主存区域为16
2=64K
(4)A 为变址寻址的形式地址,变址寄存器为R 1 (字长为16位),EA=(R1)+A 。所以能访问的
最大主存区域162=64K
【3-14】
假定某机的指令格式如下:
其中:
Bit11=1:间接寻址;
Bit8=1:变址寄存器I1寻址;
Bit7=1:变址寄存器I2寻址;
Bit6(零页/现行页寻址):Z/C =0,表示0页面;Z/C =1,表示现行页面,即指令所在页面。
若主存容量为212个存储单元,分为26个页面,每个页面有26个字。
设有关寄存器的内容为
(PC)=0344Q (I1)= 1111Q (I2)= 0256Q
试计算下列指令的有效地址。
(1) 1046Q
(2) 2433Q
(3) 3215Q
(4) 1111Q
解:(1)1046Q=(001 000 100 110)
2
由于格式中的11、8、7、6均为0,所以为0页面直接寻址,得:EA=0046Q。
(2)2433Q=(010 100 011 011)
2
8#位为1,故为变址寄存器I1寻址,所以EA = (I1) +(011 011)
2
=1111Q+33Q=1144Q
(3)3215Q=(011 010 001 101)
2
7#位为1,表示变址寄存器I2寻址,故 EA = 0256Q+15Q=0273Q
(4)1111Q=(001 001 001 001)
2
第6位为1,表示现行页面寻址,所以EA = (PC)
H //(001 001)
2
=03Q // 11Q=0311Q
【3-17】
设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。假设当前转移指令第一字节所在的地址为2000H ,且CPU 每取一个字节便自动完成(PC)+1→PC的操作。试问当执行JMP ※+8和JMP ※-9 指令(※为相对寻址特征)时,转移指令第二字节的内容各为多少?转移的目的地址各是什么?
分析:
1字节1字节
(8)补=(0000 1000)2
(-9)补=(1111 0111)2
当前转移指令第一字节所在的地址为2000H ,相对转移指令JMP占2字节,执行JMP指令,程序计数器(指令指针)PC=2002H,当执行JMP+8时,转移指令第二字节的内容为(0000 1000)
,转移的目的地址是200AH;执行JMP -9 时,转移指令第二字节的内容为(1111 0111)2,转2
移的目的地址是1FF9H。
解:
转移指令第二字节的内容分别为:(0000 1000)2,(1111 0111)2
转移的目的地址分别为:2002H+8H=200AH ,2002H+FFF7H=1FF9H。