1 .指令长度和机器字长有什么关系? 半字长指令、单字长指令、双字长指令分别表示什么意思?
解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。
2 .零地址指令的操作数来自哪里? 一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得? 各举一例说明。
解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。例如,前述零地址和一地址的加法指令。
3 .某机为定长指令字结构,指令长度16 位;每个操作数的地址码长6 位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令已有K 种,无操作数指令已有L种,问单操作数指令最多可能有多少种? 上述三类指令各自允许的最大指令条数是多少?
解: X = (24 - K) × 26 - jL
26 k
双操作数指令的最大指令数:24 - 1 。单操作数指令的最大指令数:15 × 26 - 1 (假设双操作数指令仅1 条,为无操作数指令留出1 个扩展窗口) 。无操作数指令的最大指令数:216 - 212 - 26 。其中212 为表示某条二地址指令占用的编码数,26 为表示某条单地址指令占用的编码数。此时双操作数和单操作数指令各仅有1 条。
4 .设某机为定长指令字结构,指令长度12 位,每个地址码占3 位,试提出一种分配方案,使该指令系统包含:4 条三地址指令,8 条二地址指令,180 条单地址指令。
解:4 条三地址指令
000 XXX YYY ZZZ
011 XXX YYY ZZZ
  8 条二地址指令
100 000 XXX YYY
100 111 XXX YYY
  180 条单地址指令
101 000 000 XXX
111 110 011 XXX
  5 .指令格式同上题,能否构成:三地址指令4 条,单地址指令255 条,零地址指令64 条? 为什么?
解:三地址指令4 条
000 XXX YYY ZZZ
011 XXX YYY ZZZ
  单地址指令255 条
100 000 000 XXX
111 111 110 YYY
  只能再扩展出零地址指令8 条,所以不能构成这样的指令系统。
6 .指令中地址码的位数与直接访问的主存容量和最小寻址单位有什么关系?
解:主存容量越大,所需的地址码位数就越长。对于相同容量来说,最小寻址单位越小,地址码的位数就越长。
7 .试比较间接寻址和寄存器间址。
解:间接寻址方式的有效地址在主存中,操作数也在主存中;寄存器间址方式的有效地址在寄存器中,操作数在主存中。所以间接寻址比较慢。
8 .试比较基址寻址和变址寻址。
解:基址寻址和变址寻址在形成有效地址时所用的算法是相同的,但是它们两者实际上是有区别的。一般来说,变址寻址中变址寄存器提供修改量(可变的) ,而指令中提供基准值(固定的) ;基址寻址中基址寄存器提供基准值(固定的) ,而指令中提供位移量(可变的) 。这两种寻址方式应用的场合也不同,变址寻址是面向用户的,用于访问字符串、向量和数组等成批数据;而基址寻址面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。在某些大型机中,基址寄存器只能由特权指令来管理,用户指令无权操作和修改。
9 .某机字长为16 位,主存容量为64K 字,采用单字长单地址指令,共有50 条指令。若有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。
解:操作码6 位,寻址方式2 位,地址码8 位。
10 .某机字长为16 位,主存容量为64K 字,指令格式为单字长单地址,共有64 条指令。试说明:
(1) 若只采用直接寻址方式,指令能访问多少主存单元?
(2) 为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少? 指令直接寻址的范围为多少?
(3) 采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,__________指令寻址范围为多少? 指令直接寻址范围为多少?
(4) 采用(2) 、(3) 两种方式结合,指令的寻址范围为多少? 指令直接寻址范围为多少?
解:因为计算机中共有64 条指令,所以操作码占6 位,其余部分为地址码或标志位。
(1) 若只采用直接寻址方式,地址码部分为10 位,指令能访问的主存单元数为210
=1K 字。
(2) 若采用直接/间接寻址方式,将增加了一位直接/间接标志,地址码部分为9 位,指令直接寻址的范围为29 = 0 .5K 字,指令可寻址范围为整个主存空间216 = 64K 字。
(3) 若采用页面寻址方式,将增加一位Z/C(零页/现行页)标志,所以指令直接寻址范围仍为29 = 0 .5K 字,指令寻址范围仍为216 = 64K 字。
(4) 此时将需要@ 和Z/C 两个标志位,所以指令直接寻址范围为28 = 0 .25K 字,指令的可寻址范围仍为216 = 64K 字。
11 .设某机字长32 位,CPU 有32 个32 位的通用寄存器,设计一个能容纳64 种操作的单字长指令系统。
(1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,能直接寻址的最大主存空间是多少?
(2) 如果采用通用寄存器作为基址寄存器,能直接寻址的最大主存空间又是多少?
解:因为计算机中共有64 条指令,所以操作码占6 位;32 个通用寄存器,寄存器编号占5 位;其余部分为地址码或标志位。
(1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,操作码6 位,寄存器编号5 位,间址标志1 位,地址码20 位,直接寻址的最大主存空间是220 字。
字符串截取20位(2) 如果采用通用寄存器作为基址寄存器,EA = (Rb ) + A ,能直接寻址的最大主存空间是232 字。
12 .已知某小型机字长为16 位,其双操作数指令的格式如下:
             0      5  6  7  8       15
OP R A
其中:OP 为操作码,R 为通用寄存器地址。试说明下列各种情况下能访问的最大主存区域有多少机器字?
(1) A 为立即数。
(2) A 为直接主存单元地址。
(3) A 为间接地址(非多重间址) 。
(4) A 为变址寻址的形式地址,假定变址寄存器为R1 (字长为16 位) 。
解:(1) 1 个机器字。
(2) 256 个机器字。
(3) 65536 个机器字。
(4) 65536 个机器字。
13 .计算下列4 条指令的有效地址(指令长度为16 位) 。
(1) 000000Q
(2) 100000Q
(3) 170710Q
(4) 012305Q
假定:上述4 条指令均用八进制书写,指令的最左边是一位间址指示位@ (@ = 0 ,直接寻址;@ = 1 ,间接寻址) ,且具有多重间访功能;指令的最右边两位为形式地址;主存容量215 单元,表3唱4 为有关主存单元的内容(八进制) 。
地址内容
00000 100002 00001 046710 00002 054304 00003 100000 00004 102543 00005 100001 00006 063215 00007 077710 00010 100005   解:(1) 000000Q
因为指令的最高位为0 ,故为直接寻址,EA =
A = 00000Q 。
(2) 100000Q
因为指令的最高位为1 ,故指令为间接寻址。
(00000) = 100002 ,最高位仍为1 ,继续间接寻址。
(00002) = 054304 ,其最高位为0 ,表示已到有效
地址,EA = 54304Q 。
(3) 170710Q
因为指令的最高位为1 ,故指令为间接寻址。
(00010) = 100005 ,最高位仍为1 ,继续间接寻址。
  (00005) = 100001 ,最高位仍为1 ,继续间接寻址。
(00001) = 046710 ,其最高位为0 ,表示已到有效地址,EA = 46710Q 。
(4) 012305Q
因为指令的最高位为0 ,故为直接寻址,EA = A = 00005Q 。
14 .假定某机的指令格式如下:
     11  10   9   8      7     6    5        0
@ OP I1 I2 Z/C A
其中:
Bit11 = 1 :间接寻址;
Bit8 = 1 :变址寄存器I1 寻址;
Bit7 = 1 :变址寄存器I2 寻址;
Bit6(零页/现行页寻址) :Z/C = 0 ,表示0 页面;
Z/C = 1 ,表示现行页面,即指令所在页面。
若主存容量为212 个存储单元,分为26 个页面,每个页面有26 个字。
设有关寄存器的内容为
(PC) = 0340Q   (I1 ) = 1111Q   (I2 ) = 0256Q
试计算下列指令的有效地址。
(1) 1046Q
(2) 2433Q
(3) 3215Q
(4) 1111Q
解:(1) 1046Q = 001 000 100 110
因为4 个标志位均为0 ,故为直接寻址,EA = A = 0046Q 。
(2) 2433Q = 010 100 011 011
因为Bit8(I1 ) = 1 ,故为变址寄存器1 寻址,EA = (I1 ) + A = 1111 + 33 = 1144Q 。
(3) 3215Q = 011 010 001 101
因为Bit7(I2 ) = 1 ,故为变址寄存器2 寻址,EA = (I2 ) + A = 0256 + 15 = 0273Q 。
(4) 1111Q = 001 001 001 001
因为Bit6(Z/C) = 1 ,故为当前页寻址,EA = (PC)H ∥ A = 03 ∥ 11 = 0311Q 。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。