堆栈向上生成:
自减型 间址:
压栈:SP先自减,再存数; -(SP)
自增型 间址:
出栈:先取数,后SP再自动增加;+(SP)
SP既可以出现在指令中,也可以隐含约定。
4.变址,基址寻址及变化
(1)变址寻址:指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。
格式:操作码 RX D
变址寄存器号 形式地址
S = ((RX) + D)(RX为变址寄存器作为修改量,D做为基准地址)
(2)基址寻址:指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。
格式:操作码: RX D
基址寄存器号 位移量
S = ((RX) + D)(RX为基址寄存器作为基地址,D做为基址的位移)
变址与基址的区别:
变址:指令提供基准量(不变),R提供修改量(可变),适用处理一维数组。
基址:指令提供位移量(不变),R提供基准量(可变),用于扩大有限指令的访存空间。
(3)基址加变址:指令给出两个寄存器和一个地址量,寄存器内容与地址量之和为有效地址。
格式:操作码 RX RB D
变址寄存器号 基址寄存器号 位移量
S = ((RX) + (RB) + D)(便于处理二维数组)
(4)相对寻址:指令给出位移量,PC内容与位移量之和为有效地址。
格式: 操作码 PC + D
或隐含指定 位移量
S = ((PC) + D)(使有效地址相对PC上下浮动,给编程带来方便)
(5)页面寻址:指令给出位移量,PC的高位部分与位移量拼接,形成有效地址。
格式: 操作码 PC D
或隐含指定 位移量
S = ((PC)H + D)(PC页号,D页内地址。
用于页式管理存储系统,寻址速度快,适于组织程序模块,有效利用存储空间。
对寻址方式的说明:
1.操作码隐含说明不同寻址方式。
例:某机指令操作码最高两位。
00: RR型指令,寄存器-寄存器寻址;
01:RX型指令, 寄存器-变址寻址;
10:SI型指令,基址-立即寻址;
11:SS型指令,基址-基址寻址;
2.指令中设置专门字段说明寻址方式:
例:某机器指令的每个地址字段中各设置一个3位的寻址方式字段。
操作码 寻址方式 R 寻址方式 R
3位源地址字段 3位目的地址字段
第三节 指令类型
1.传送指令:源地址---数------>目的地址