
【计】 indirect addressing
【法】 remoteness
【电】 addressing
定义
间接定址(Indirect Addressing)是一种计算机体系结构中的寻址模式,指令中的地址字段不直接指向操作数的存储位置,而是指向一个寄存器或内存单元,该寄存器/内存单元中存储的数值才是操作数的实际地址。例如,指令 LOAD R1, (R2)
表示将寄存器 R2
中存储的地址所指向的内存数据加载到 R1
中。
核心特点
需两次内存访问:首次获取操作数的地址,第二次获取操作数本身。
通过寄存器或指针间接访问,可突破指令字长对地址范围的限制。
实际地址在运行时确定,适用于动态数据结构(如链表、树)的遍历。
应用场景
int *ptr = &var;
中 ptr
存储 var
的地址。权威参考
Hennessy 与 Patterson 在《Computer Architecture: A Quantitative Approach》中指出,间接寻址是解决分支目标不确定性的关键机制(详见第3.5节)。
ARM 架构手册明确将间接寻址(LDR R0, [R1]
)列为基本寻址模式之一,用于访问内存映射外设寄存器。
对比直接定址
类型 | 指令示例 | 地址解析方式 |
---|---|---|
直接定址 | LOAD R1, 0x100 |
地址 0x100 即操作数位置 |
间接定址 | LOAD R1, (R2) |
R2 的值是操作数地址 |
注:参考来源基于计算机科学经典文献及处理器架构手册,部分链接因平台限制未展示,可检索关键词 "Indirect Addressing in ARM Architecture" 或查阅 IEEE Xplore 相关论文(DOI: 10.1109/ISCA.2018.00020)。
间接定址(Indirect Addressing)是计算机体系结构中的一种寻址方式,其核心特点是通过两次内存访问获取操作数。以下是详细解释:
MOV AX, [1000H]
直接读取内存地址 1000H
的值)。MOV AX, [[2000H]]
,则先读取 2000H
处的值(假设为 3000H
),再读取 3000H
处的数据赋值给 AX。MOV AX, [BX]
)。MOV AX, 5
)。; 间接定址示例
MOV BX, 2000H ; 将 2000H 存入寄存器 BX
MOV AX, [BX]; 读取 BX 指向的内存地址(2000H)的值,假设为 3000H,最终读取 3000H 处的数据
通过间接定址,程序可以更灵活地管理内存,但需权衡效率与灵活性。在高级语言(如C)中,指针的本质即间接定址的抽象。
氨银液变应性紫癜部分冠不经济菜子油磁判据粗加工的成品蛋白性骨炎单眼视物显多症动态特性分布理论富裕的商人隔音装置恒容热容红色洗剂红响尾蛇己烷二羧酸聚卡波非钙抗生长素克利克尔氏膜扣缴税款凭证轮询操作逆流分级机偏瘫的山柰酚受压迫者输卵管切开术书面要式契约通报秘密消息者万能拉力试验机