第3章
1 .指令长度和机器字长有什么关系? 半字长指令、单字长指令、双字长指令分别表 示什么意思?
解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于 或小于机器字长。通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于 半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长 指令。
2 .零地址指令的操作数来自哪里? 一地址指令中,另一个操作数的地址通常可采用 什么寻址方式获得? 各举一例说明。
解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。双操作数的一地址 指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器 中。例如,前述零地址和一地址的加法指令。
3 .某机为定长指令字结构,指令长度16 位;每个操作数的地址码长6 位,指令分为 无操作数、单操作数和双操作数三类。若双操作数指令已有K 种,无操作数指令已有L
5
种,问单操作数指令最多可能有多少种? 上述三类指令各自允许的最大指令条数是多少? 指令系统
6 5 解: 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 .指令格式同上题,能否构成:
6
三地址指令4 条,单地址指令255 条,零地址指令64 条? 为什么? 解:三地址指令4 条 000 XXX YYY ZZZ …
011 XXX YYY ZZZ
单地址指令255 条 100 000 000 XXX …
111 111 110 YYY
只能再扩展出零地址指令8 条,所以不能构成这样的指令系统。
6 .指令中地址码的位数与直接访问的主存容量和最小寻址单位有什么关系?
6 6 解:主存容量越大,所需的地址码位数就越长。对于相同容量来说,最小寻址单位越 小,地址码的位数就越长。
11 .设某机字长32 位,CPU 有32 个32 位的通用寄存器,设计一个能容纳64 种操作
的单字长指令系统。
(1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,能直接寻址的最大主存 空间是多少?
(2) 如果采用通用寄存器作为基址寄存器,能直接寻址的最大主存空间又是多少? 解:因为计算机中共有64 条指令,所以操作码占6 位;32 个通用寄存器,寄存器编号
占5 位;其余部分为地址码或标志位。
(1) 如果是存储器间接寻址方式的寄存器- 存储器型指令,操作码6 位,寄存器编号 5 位,间址标志1 位,地址码20 位,直接寻址的最大主存空间是220 字。
(2) 如果采用通用寄存器作为基址寄存器,EA = (Rb ) + A ,能直接寻址的最大主
7
存
空间是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 个机器字。
14. 假定某机的指令格式如下:
11 10 9 8 7 6 5 0
其中:
Bit11=1:间接寻址; Bit8 =1:变址寄存器I1寻址; Bit7 =1:变址寄存器I2寻址;
@ OP I1 I2 Z/C A 8
相关推荐: