6 .指令中地址码的位数与直接访问的主存容量和最小寻址单位有什么关系?
6 6 解:主存容量越大,所需的地址码位数就越长。对于相同容量来说,最小寻址单位越小,地址码的位数就越长。 7 .试比较间接寻址和寄存器间址。
解:间接寻址方式的有效地址在主存中,操作数也在主存中;寄存器间址方式的有效地址在寄存器中,操作数在主存中。所以间接寻址比较慢。
8 .试比较基址寻址和变址寻址。
解:基址寻址和变址寻址在形成有效地址时所用的算法是相同的,但是它们两者实际上是有区别的。一般来说,变址寻址中变址寄存器提供修改量(可变的) ,而指令中提供基准值(固定的) ;基址寻址中基址寄存器提供基准值(固定的) ,而指令中提供位移量(可变的) 。这两种寻址方式应用的场合也不同,变址寻址是面向用户的,用于访问字符串、向量和数组等成批数据;而基址寻址面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。在某些大型机中,基址寄存器只能
由特权指令来管理,用户指令无权操作和修改。
9 .某机字长为16 位,主存容量为64K 字,采用单字长单地址指令,共有50 条指令。若有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。
解:操作码6 位,寻址方式2 位,地址码8 位。
10 .某机字长为16 位,主存容量为64K 字,指令格式为单字长单地址,共有64 条指令。试说明:
(1) 若只采用直接寻址方式,指令能访问多少主存单元? (2) 为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少? 指令直接寻址的范围为多少?
(3) 采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令寻址范围为多少? 指令直接寻址范围为多少?
(4) 采用(2) 、(3) 两种方式结合,指令的寻址范围为多少? 指令直接寻址范围为多少?
11 .设某机字长32 位,CPU 有32 个32 位的通用寄存器,设计一个能容纳64 种操作的单字长指令系统。
(1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,能直接寻址的最大主存空间是多少?
(2) 如果采用通用寄存器作为基址寄存器,能直接寻址的最大主存空间又是多少?
解:因为计算机中共有64 条指令,所以操作码占6 位;32 个通用寄存器,寄存器编号占5 位;其余部分为地址码或标志位。 (1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,操作码6 位,寄存器编号5 位,间址标志1 位,地址码20 位,直接寻址的最大主存空间是
字。
,能直
(2) 如果采用通用寄存器作为基址寄存器,接寻址的最大主存空间是
字。
12 .已知某小型机字长为16 位,其双操作数指令的格式如下:
其中: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