寻址方式
所谓寻址,指的是寻找操作数的地址或是下一条将要执行的指令地址。
寻址方式是指如何确定一条将要执行指令的地址及指令中操作数地址的方式,
可以分为指令寻址和数据寻址。
指令寻址
1)顺序寻址 (PC)+1-> PC
2) 跳跃寻址 有转移类指令提供下条指令地址
数据寻址
数据寻址方式是根据指令中给出的地址码字段寻找真实操作数地址的方式。通常将指令地址码字段中的地址称为形式地址(用字母A表示),操作数的真实地址称为有效地址(用字母EA表示)。
(1)立即数寻址
操作数就包含在指令中,操作数=A
(2)直接寻址
操作数在存储器中,EA=A
(3)间接寻址
操作数在存储器中,操作数的地址也保存在存储器中,EA=(A)
(4)寄存器寻址
操作数在寄存器中,指令的地址码字段直接指出寄存器号Ri,EA=Ri
(5)寄存器间接寻址
操作数在存储器中,操作数的地址保存在寄存器中,EA=(Ri)
(6)隐含寻址
操作数隐含在累加器ACC中,在指令中无需地址码指出该操作数。
(7)偏移寻址
操作数在存储器中,操作数的地址需要通过计算得到。根据所选寄存器的不同,偏移寻址可以分为 相对寻址、基址寻址和变址寻址。
(a)相对寻址 EA=(PC)+A
(b)基址寻址 EA=(基址寄存器)+A
(c ) 变址寻址 EA=(变址寄存器)+A
(8)堆栈寻址
堆栈是存储器中的一段特殊存储空间。操作数存放在栈顶中,指令中无需地址码,操作数的有效地址由栈顶指针SP指示。