
【計】 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)中,指針的本質即間接定址的抽象。
草酸铈蛋白質分級倒買倒賣等電子原理電洞頂突囊多管旋風分離器腭缺損非均勻取樣分嵴黃藍視症徽型器件呼吸窘迫寄存器方式開門見山地流體靜力的離子感光闆鋁皂尼科耳棱鏡平刮闆模型普魯薩克氏纖維取消延遲投遞服務沙巴草實物預算雙重稅贖償契約水塘撕裂痛頭腸