寻址方式 指令实例 含义 寄存器寻址 Add r4. r3 Regsr4-regsr4]+ regs r3 立即值寻址 Add R4,#3 Regs[r4]← Regs[r4]+3 偏移寻址 Add R4, 100(RI) Regs(R4]-RegsIR41+ Mem(100+Regs(RIll 寄存器间接寻址 Add r4, ri) Regs+regs[r4+ Mem regs[rlll 索引寻址 Add R3,(RI Regs(R3]+-Regs(R3]+ Mem(Regs(R1+Regs[R2II R2) 直接寻址或绝对寻AdR1,(00 Regsrilt-regsrl+ Mem 1o01 址 存储器间接寻址 Add ri, @(R3) Regs[rl-regsrl+ Mem Mem regs r3 自增寻址 Add rI, (r2)+ Regsrlle-regsrl+ Mem regs r2ll Regs[r2]← Reger2]+d 自减寻址 AdR1,-(R2) Reger2]← Regs[r2]-d Regs[[rll+Mem Regs[r2ll 缩放寻址 Add Regsril-regsrl Mem[ 100 Regs[r2+ R1,100(R2)IR3]Regs[R3]*dl
寻址方式 指令实例 含 义 寄存器寻址 Add R4 , R3 Regs[R4]←Regs[R4]+Regs[R3] 立即值寻址 Add R4 , #3 Regs[R4]←Regs[R4]+3 偏移寻址 Add R4 , 100(R1) Regs[R4]←Regs[R4]+Mem[100+Regs[R1]] 寄存器间接寻址 Add R4 , (R1) Regs[R4]←Regs[R4]+Mem[Regs[R1]] 索引寻址 Add R3 , (R1 + R2) Regs[R3]←Regs[R3]+Mem[Regs[R1]+Regs[R2]] 直接寻址或绝对寻 址 Add R1 , (1001) Regs[R1]←Regs[R1]+Mem[1001] 存储器间接寻址 Add R1 , @(R3) Regs[R1]←Regs[R1]+Mem[Mem[Regs[R3]]] 自增寻址 Add R1 , (R2)+ Regs[R1]←Regs[R1]+Mem[Regs[R2]] Regs[R2]←Regs[R2]+d 自减寻址 Add R1, -(R2) Regs[R2]←Regs[R2]-d Regs[R1]←Regs[R1]+Mem[Regs[R2]] 缩放寻址 Add R1 , 100(R2)[R3] Regs[R1]←Regs[R1] + Mem[100 + Regs[R2] + Regs[R3]*d]
寄存器寻址: 变量值在寄存器中 立即值寻址: 常量访问 偏移寻址: 访问局部变量 寄存器间接寻址: 用指针访问变量(指针值在 寄存器中) 索引寻址: 数组访问 直接寻址或绝对寻址:静态变量访问 存储器间接寻址: 用指针访问变量(指针值在 存储器中) 自增寻址: 遍历数组,有时用于实现栈 结构 自减寻址 遍历数组,有时用于实现栈 结构 缩放寻址: 数组访问
寄存器寻址: 变量值在寄存器中。 立即值寻址: 常量访问 偏移寻址: 访问局部变量 寄存器间接寻址: 用指针访问变量(指针值在 寄存器中) 索引寻址: 数组访问 直接寻址或绝对寻址: 静态变量访问 存储器间接寻址: 用指针访问变量(指针值在 存储器中) 自增寻址: 遍历数组,有时用于实现栈 结构 自减寻址: 遍历数组,有时用于实现栈 结构 缩放寻址: 数组访问
1.在通用寄存器指令集结构中,一般是利用寻址方 式指明指令中的操作数是一个常数、一个寄存器 操作数,抑或是一个存储器操作数
1. 在通用寄存器指令集结构中,一般是利用寻址方 式指明指令中的操作数是一个常数、一个寄存器 操作数,抑或是一个存储器操作数
3.寻址方式使用情况统计结果 VAX指令集结构的机器:gc、 Spice和Tex基准程 序) Tex日 Spice口gce 70% 60% 55% 50 40% 24% 20% 11% 10%1%1%0% 立即值寻址方式和偏移寻址方式的使用频率十分高
3. 寻址方式使用情况统计结果 (VAX指令集结构的机器:gcc、Spice和Tex 基准程 序) 1% 0% 24% 43% 32% 6% 16% 3% 17% 55% 1% 6% 11% 39% 40% 0% 10% 20% 30% 40% 50% 60% 70% 存储器间接寻址 缩放寻址 寄存器间接寻址 立即寻址 偏移寻址 Tex Spice gcc 立即值寻址方式和偏移寻址方式的使用频率十分高
4.各种偏移量字段大小的使用情况 寄存器-寄存器型指令集结构的机器上(MIPS) 运行 SPECint92基准程序集 ( compress、 espresso、 eqntott,、gcc、i) 运行 SPECfp92基准程序集 ( dudou、ear、 hydro.2d、 mdlp2、su2cor)
4. 各种偏移量字段大小的使用情况 寄存器-寄存器型指令集结构的机器上(MIPS) 运行SPECint92基准程序集 (compress、espresso、eqntott、gcc、li) 运行SPECfp92基准程序集 (dudoc、ear、hydro2d、mdljdp2、su2cor)