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