一、指令寻址
1:、顺序寻址 , PC+1 -> PC ;PC程序计数器寄存器用于存储要执行的下一条指令的地址
2、跳跃寻址, 如 JMP 7;无条件跳转到7号地址的指令;
二、数据寻址
1、指令格式
操作码
寻址特征
形式地址A
形式地址 A:机器指令中操作数的形式地址;
有效地址EA:操作数的真实地址; effective address;
约定: 指令字长=存储字长=机器字长;
2、数据寻址方式(10种)
2.1立即寻址
形式地址A就是操作数;(无需访存)
2.2直接寻址
形式地址A就是有效地址EA;(无需访存)
2.3 隐含寻址
操作数地址隐含在操作码中;根据操作码隐含指出操作数在某寄存器中;(如操作数在寄存器中,无需访存)
2.4 间接寻址
通过访存取出形式地址A指向的内存单元的操作数有效地址EA;再通过访存取出有效地址EA指向的内存单元的操作数;(需要2次访存)
2.5 寄存器寻址
形式地址就是寄存器编号,操作数存储在寄存器中;(无需访存)
2.6 寄存器间接寻址
形式地址就是寄存器编号,但操作数有效地址存储在寄存器中;(需要1次访问寄存器,1次访存);
2.7 基址寻址
操作数有效地址EA等于基址+形式地址A;其中基址存储在专用寄存器或通用寄存器中,形式地址作为偏移量;专用寄存器或BR,通用寄存器如R0;(1次计算,1次访存);(注意,基址不变,但形式地址改变,通常用于多道程序设计);
2.8 变址寻址
操作数有效地址EA等于变址+形式地址A;其中变址存储在变址寄存器IX(或通用寄存器)中;(1次计算,1次访存);(注意,变址可变,但形式地址不变,通常用于遍历数组);
2.9 相对寻址
以pc寄存器作为基址寄存器,形式地址作为偏移量;
2.10 堆栈寻址
操作数存储在堆栈的栈顶中,其中栈底是低地址,栈顶是高地址(SP寄存器存储);
Push:入栈;把ACC累加器的数据压入栈顶(内存);
Pop:出栈:把栈顶元素出栈并存入ACC累加器;