寻址方式
确定 本条指令 的 操作数地址(数据寻址)
下一条 欲执行指令 的 指令地址(指令寻址)
指令寻址
顺序 ( PC ) + 1 ----> PC
数据寻址
数据寻址有多种,需要在指令中明确指出采用哪一 种寻址方式,可以专门设置一个寻址方式特征字段, 或纳入操作码中。
1.立即寻址
又称立即数寻址,即指令中的形式地址
A不是操作数地址,而是操作数本身。
• 指令执行阶段不访存
• A 的位数限制了立即数的范围
2.直接寻址
指令中的形式地址即为有效地址 EA = A
• 执行阶段访问一次存储器
• A 的位数决定了该指令操作数的寻址范围
• 操作数的地址不易修改(必须修改A)
3.隐含寻址
操作数地址隐含在操作码中
4.间接寻址 EA =(A)
指令中的形式地址不是操作数的地址, 而是操作数地址的地址。
间接寻址编程举例
5.寄存器寻址 EA = Ri
6.寄存器间接寻址
• 有效地址在寄存器中, 操作数在存储器中,执行阶段访存 操作数
• 便于编制循环程序
7.基址寻址
(1) 采用专用寄存器作基址寄存器
(2)采用通用寄存器作基址寄存器
• 由用户指定哪个通用寄存器作为基址寄存器
• 基址寄存器的内容由操作系统确定
• 在程序的执行过程中 R0 内容不变,形式地址 A 可变
8.变址寻址
• 可扩大寻址范围
• IX 的内容由用户给定
• 在程序的执行过程中 IX 内容可变,形式地址 A 不变
• 便于处理数组问题
例子: 设数据块首地址为 D,求 N 个数的平均值
9.相对寻址
10. 堆栈寻址
(1) 堆栈的特点
(2)堆栈寻址举例
(3) SP 的修改与主存编址方法有关