第三章参考答案
【3-9】
某机字长为16 位,主存容量为64K 字,采用单字长单地址指令,共有50条指令。若有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。
解:分析:有50条指令,操作码部分共需要6位;4种寻址方式,寻址方式说明2位;形式地址码部分8位。 OP (6位)
【3-10】
某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。试说明: (1)若只采用直接寻址方式,指令能访问多少主存单元?
(2)为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少? 指令直接寻址的范围为多少?
(3) 采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令寻址范围为多少? 指令直接寻址范围为多少?
(4) 采用(2) 、(3) 两种方式结合,指令的寻址范围为多少? 指令直接寻址范围为多少? 解:(1)分析: 指令共有64条,需要操作码6位;指令格式为单字长单地址,而机器字长为16位,所以地址码部分10位。
指令格式如图所示: OP A 10M(2位) A(8位) 6位 10位
若采用直接寻址方式,即:形式地址等于有效地址,EA=A,所以指令能访问的主存单元为2字
(2)为扩充指令的寻址范围,采用直接/间接寻址方式,若只增加一位直接/间接标志,指令格式如图所示:
OP @ A =1K
6位 1位 9位
指令直接寻址的范围为2=512字。
由于存储单元存储16位字,间接寻址的最大寻址范围是2
(3)采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令格式如下如所示:
169=64K字。
OP (Z/C) 形式地址A 6位 1位 9位
由于A为9 位,所以直接寻址的范围是29=512字 。
由于:EA?(PC)H//A,是16位,所以指令可寻址范围216=64K字。 (4)采用(2) 、(3) 两种方式结合,此时需要@ 和Z/C 两个标志位,
指令格式如下如所示:
OP @ (Z/C) 形式地址A 6位 1位 1位 8位
直接寻址范围是2;指令可寻址范围仍为2
【3-12】
已知某小型机字长为16位,其双操作数指令的格式如下:
OP R A 816=64K字。
6位 2位 8位
其中:OP 为操作码,R 为通用寄存器地址。试说明下列各种情况下能访问的最大主存区域有多少机器字?
(1) A 为立即数。
(2) A 为直接主存单元地址。 (3) A 为间接地址(非多重间址) 。
(4) A 为变址寻址的形式地址,假定变址寄存器为R1 (字长为16位) 解:(1)A 为立即数,由于是包含在指令中,所以能访问的主存区域1个机器字。 (2)A 为直接主存单元地址,能访问的最大主存区域为28(256字)
(3)若A 为间接地址(非多重间址),EA=(A)为16位,所以能访问的最大主存区域为2=64K (4)A 为变址寻址的形式地址,变址寄存器为R1 (字长为16位),EA=(R1)+A 。所以能访问的
最大主存区域2=64K
【3-14】
假定某机的指令格式如下:
1616
其中:
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 指令(※为相对寻址特征)时,转移指令第二字节的内容各为多少? 转移的目的地址各是什么?
分析:JMP指令格式示意图: 操作码 相对位移量(补码) 1字节 1字节
(8)补=(0000 1000)2
(-9)补=(1111 0111)2
当前转移指令第一字节所在的地址为2000H ,相对转移指令JMP占2字节,执行JMP指令,程序计数器(指令指针)PC=2002H,当执行JMP+8时,转移指令第二字节的内容为(0000 1000)
2,转移的目的地址是
200AH;执行JMP -9 时,转移指令第二字节的内容为(1111 0111)2,转
移的目的地址是1FF9H。 解:
转移指令第二字节的内容分别为:(0000 1000)2 ,(1111 0111)2 转移的目的地址分别为:2002H+8H=200AH ,2002H+FFF7H=1FF9H。