1.某计算机的字长为16位,存储器按字编址,访存指令格式如图1所示。其中,OP是操作码,MOD定义寻址方式,见表1,A为形式地址。设PC和R分别为程序计数器和变址寄存器,字长为16位。
(1)该格式能定义多少种指令?
解:
由图1得,操作码OP指令长度为5,
所以有25 = 32种
(2)各种寻找方式的寻找范围为多少字?
解:
①立即寻址:指令字本身;
②直接寻址:256个字(主存中最前面的256个字);
③间接寻址:216个字;
④变址寻址:216个字;
⑤相对寻址:256个字(PC值附近的256个字);
(3)写出各种寻址方式的有效地址EA的计算式。
解:
①立即寻址:EA = PC ;
②直接寻址:EA = A ;
③间接寻址:EA =(A);
④变址寻址:EA =(Rx)+ A;
⑤相对寻址:EA =(PC)+ A;
2.某机字长32位,共有机器指令100条,指令为单字长,等长操作码。CPU内部有通用寄存器32个,可作变址寄存器用。存储器按字节编址,指令拟用直接寻址、间接寻址、变址寻址和相对寻址4种方式。
(1)分别画出采用4种不同寻址方式的单地址指令的指令格式。
解:
∵机器指令100条
∴27=128,最小指令操作码位数为7
∴指令长度为32位,剩余位数为32-7=23位,即为地址码字段
又∵有4种寻址方式
∴22=4,所以MOD长度为2
又∵变址寻址时,CPU内部通用寄存器有32个,可作变址寄存器用,32=25
∴寄存器编码位数为5,实际地址码为18位
①直接寻址的单地址指令格式:
(2)采用直接寻址和间接寻址方式时,可寻址的存储空间各是多少?
解:
∵存储器按字节编址
∴直接寻址存储空间为:223(8MB)
∴间接寻址存储空间为:232(4GB)
(2)写出4中方式下有效地址EA的表达式。
解:
①直接寻址:EA =A;
②间接寻址:EA =(A);
③变址寻址:EA =(Rx)+A;
④相对寻址:EA =(PC)+A
3.设某计算机有变址寻址、间接寻址和相对寻址等寻址方式,设当前指令的地址码部分001AH,正在执行的指令所在地址为1F05H,变址寄存器中的内容为23A0H。
已知存储器的部分地址及相应内容,如表1所示。
(1)当执行取数指令时,如为变址寻址,取出的数为多少?
解:
为变址寻址时,当前指令的地址码表示操作数的地址=001AH,Rx=1F05H,
∴操作数S=(EA)=((Rx)+A)=(1F05H+001AH)=(23BAH)=1748H
(2)如为间接寻址,取出的数为多少?
为间接寻址时,当前指令的地址码表示操作数地址的地址=001AH,
∴操作数S=(EA)=((A))=((001AH))=(23A0H)=2600H
(3)当执行转移指令时,转移地址为多少?
解:
∵执行转移指令即相当于执行相对寻址指令,当前指令的地址码表示位移量=001AH
又∵正在执行的指令所在地址为1F05H
∴操作数S=EA=(PC)+A=1F05H+001AH=1F1FH
(因本题未给出指令的长度,故没有考虑PC值的更新问题。)
4.基址寻址与变址寻址有何区别?
答:
①采用基址寻址时,基址寄存器提供的地址不变,指令提供的位移量改变;采用变址寻址时,变址寄存器提供的地址改变,指令提供的位移量不变。
②变址寻址可以实现程序块的浮动,使有效地址按变址寄存器的内容实现有规律的变化,而不改变指令本身。
5.设某机的指令字长16位,格式、有关寄存器和主存内容如下,X为寻址方式,D为形式地址,请在下表中填入有效地址E及操作的值。
6.字长为16位,主存64K,指令单字长单地址,80条指令,寻址方式有直接、间接、相对、变址。请设计指令格式。
解:
∵字长为16位,主存为64K
∵需80条指令,27=128,所以最小指令操作码位数为7位
又∵有4中寻址方式,4=22
∴寻址特征MOD为2位,
∴地址码为16-7-2=7位,
指令格式如下所示:
7.设某指令系统指令字长16位,每个地址码为6位。若要求设计二地址指令15条、一地址指令34条,问最多还可以设计多少条零地址指令?
解:
8.控制器的种类及原理。
解:
控制器分为3种,分别为:硬布线控制器、微程序控制器、门阵列控制器。
原理:
(1)硬布线控制器:采用时序逻辑技术实现;
(2)微程序控制器:采用存储逻辑技术实现;
(3)门阵列控制器:时序逻辑技术与存储逻辑技术相结合实现。
9.ADD 30指令属于什么指令?由几个CPU周期组成?各CPU周期做什么?
解:
(1)ADD 30属于直接访问主存指令;
(2)由3个CPU周期组成;
(3)第1个CPU周期取指令(PC+1)、指令译码;第2个CPU周期送操作数地址;第3个CPU周期取操作数、执行操作。
10.STA I 31指令属于什么指令?由几个CPU周期组成?各CPU周期做什么?
解:
(1)STA I 31属于间接访问内存指令;
(2)由4个CPU周期组成;
(3)第1个CPU周期取指令(PC+1)、指令译码;第2个CPU周期送地址给地址指示器;第3个CPU周期取出操作数地址;第4个CPU周期送操作数、执行操作。
11.如何区分指令与数据?
解:
(1)CPU通过时序控制信号从时间和空间上识别出是数据还是指令;
(2)时间上,一个指令周期分为取指令周期和执行指令周期两个阶段,取指令周期在前,执行指令周期在后,时间上在前的为指令,在后的为数据。
(3)空间上,若为指令,则送到IR(指令寄存器)中,若为数据则送到ALU(算术逻辑运算部件)中。