第二节寻址方式 是指寻找操作数地址或操作数的方式。 321常见寻址方式 1.立即寻址 指令直接给出操作数。 数在指令中, 其长度固定、 定长格式:操作码0立即数S|有限 变长格式:基本指令 立即数S 数在基本指令之 后,其长度可变 ·用来提供常数、设置初值等
第二节 寻址方式 是指寻找操作数地址或操作数的方式。 操作码θ 立即数S 1. 立即寻址 指令直接给出操作数。 3.2.1 常见寻址方式 定长格式: 变长格式:基本指令 立即数S 数在指令中, 其长度固定、 有限。 数在基本指令之 后,其长度可变。 用来提供常数、设置初值等
2.直接寻址 指令直接给出操作数地址。 存储单元号(数在M中) 寄存器号(数在R中) °(1)存储器直接寻址(直接寻址 ∫定长格式|操作码0有效地址D7D的位数有限 限制访存范围 变长格式基本指令 DL D的位数可覆盖 DH 整个存储空间 s=(D)
操作码θ 有效地址D 2. 直接寻址 指令直接给出操作数地址。 存储单元号 寄存器号 (数在M中) (数在R中) (1)存储器直接寻址(直接寻址) 定长格式 D的位数有限, 限制访存范围 变长格式 基本指令 DL DH D的位数可覆盖 整个存储空间 S =(D)
●(2)寄存器直接寻址(寄存器寻址) 格式操作码日寄存器号R1R所占位数少 ●S=(R) 访问R比访问M快 用于访问固定的存储单元或寄存器。 ●3.问接寻址 指令给出操作数的间接地址。 存储单元号(数在M中) 间址单元 寄存器号(数在M中) 址指针 °(1)存储器间址 D=0030L0060 °格式操作码间接地址D 0060S S=((D))
操作码θ 寄存器号R 存储单元号 寄存器号 (数在M中) (数在M中) (2)寄存器直接寻址(寄存器寻址) 格式 R所占位数少; 访问R比访问M快 格式 S =(R) 用于访问固定的存储单元或寄存器。 3.间接寻址 指令给出操作数的间接地址。 (1)存储器间址 操作码θ 间接地址D D=0030 0060 ... 0060 S... S =((D)) M 间址单元 地址指针
●(2)寄存器间址 地址指针 R=02 格式操作码θ寄存器号R[0040 S=(R) 0040 R所占位数少;R可提供全字长地址码; 修改R内容比修改M内容快。 °指针不变(由指令指定),指针内容可变,使同一指 冷可指向不同存储单元,以实现程序的循环、共享 并提供转移地址。 ●(3)堆栈寻址 SP 格式操作码日堆栈指针SP[0070 栈顶 ●S=((SP)
操作码θ 寄存器号R (2)寄存器间址 格式 R所占位数少;R可提供全字长地址码; 修改R内容比修改M内容快。 格式 S =((R)) 指针不变(由指令指定),指针内容可变,使同一指 令可指向不同存储单元,以实现程序的循环、共享, 并提供转移地址。 (3)堆栈寻址 操作码θ 堆栈指针SP SP ... S... S =((SP)) M R=02 M 0040 0040 S... ... ... 地址指针 0070 ... 栈顶
堆栈向上生成 低 栈顶 压栈:$P自动减1,再存数。SP (SP),自减型间址。 出栈:先取数,SP再自动加1。 高 (sP)+,自增型间址。 SP既可出现在指令中,也可隐含约定。 4.变址、基址寻址及其变化 争(1)变址寻址 指令给出一个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址 格式操作码日RxD
格式 SP既可出现在指令中,也可隐含约定。 (1)变址寻址 4.变址、基址寻址及其变化 SP 栈顶 M S... ... ... 低 高 堆栈向上生成 压栈:SP自动减1,再存数。 -(SP),自减型间址。 先取数,SP再自动加1。 (SP)+,自增型间址。 出栈: 指令给出一个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。 操作码θ RX D