PDP-11 计算机的主要特点是:
采用单总线(UNIBUS)结构,即中央处理机、主存储器、全部外围设备都接在唯一的一组总线上,优点是硬件结构简单,易于扩展,缺点是系统运行效率低。
该计算机的机器字长 16 位;
CPU 内有 8 个通用寄存器,分别用 R0 到 R7 表示,但 R6 和 R7 分别为堆栈指针 SP和程序计数器 PC,真正能通用的只有
R0 到 R5;
该机可以按字或字节寻址,指令中有处理字类型数据和处理字节类型数据的两类指令。
操作码使用逐段扩展技术,不同的指令使用不同位数(长度)的操作码,从 4 位到16位不等,在很短的指令字中充分发挥每一位的效用。
在指令的操作数地址部分,采用统一寻址方式访问通用寄存器、主存及外围设备,没有专门的 I/O 指令。
指令中用6个二进制位(bit)表示一个操作数的地址。如下图所示:
其中Mod (寻址方式)和 Ri(寄存器编号) 各占3位,能分别表示8种不同的寻址方式和8个不同的寄存器。Ri 的取值从000到111分别表示R0到R7,其中R6和R7也可以写成SP和PC。Mod的8种取值分别代表如下的寻址方式:
000
|
Ri
|
寄存器寻址,Ri的内容即为操作数 |
001
|
(Ri)
|
寄存器间接寻址,Ri的内容是操作数的地址 |
010
|
(Ri)+
|
寄存器间接寻址并自动增量,Ri的内容是操作数的地址,用后Ri的内容执行增1(对字节指令)或增2(对字指令) |
011
|
@(Ri)+
|
间接寻址并自动增量,Ri的内容是操作数地址的地址,用后Ri的内容增1(对字节指令)或增2(对字指令) |
100
|
-(Ri)
|
自动减量的寄存器间接寻址,修改后的Ri的内容是操作数的地址,即用前先对Ri的内容执行减1(对字节指令)或减2(对字指令) |
101
|
@-(Ri)
|
自动减量并间接寻址并,修改后的Ri的内容是操作数地址的地址,即用前先对Ri的内容执行减1(对字节指令)或减2(对字指令) |
110
|
X(Ri)
|
变址寻址,将X与Ri的内容相加之和用作为操作数的地址 |
111
|
@X(Ri)
|
变址并间接寻址,将执行X与Ri的内容相加之和用作为操作数的地址的地址 |
很容易看清,Mod的高两位取值相同、仅最低位的取值不同的两种寻址方式中,最低位取值为1的寻址方式,总是在前一种寻址方式上多了一次间址操作。
也容易发现,2、3、6、7四种寻址方式,不能按上述规定简单地用于程序计数器PC(R7),2、3寻址方式会破坏PC的正常值,6、7寻址方式会因PC本身的自动增量操作而不正确。因此,可以把27、37、67、77这几个组合变通一下,用于另外的寻址方式,如下所示。
2
|
#n
|
立即数寻址,#n为立即数,放在指令的第二个字中 |
3
|
@#A
|
直接(绝对地址)寻址,#A为地址,在指令的第二个字中 |
6
|
X
|
相对寻址,当前指令地址 + 4 + X为有效地址,X在指令的第二个字中 |
7
|
@X
|
相对加间接寻址,当前指令地址 + 4 + X为地址的地址,X在指令的第二个字中 |
|