操作數尋址方式:
含義:形成操作數有效地址的方法
1、立即數尋址
地址碼字段是操作數本身
例:MOV AX,200H(AX<---200H)
S=D
特點:
取指操作將數據與指令一並讀入CPU內部的寄存器,指令執行速度塊
便於程序設計(變量賦初值)
數據大小受字段位數限制
2、寄存器尋址
操作數在cpu的內部寄存器中
例 MOV AX,BX(AX<---(BX) )
特點:
操作數在寄存器中,指令執行速度快
能訪問的數據大小一般與計算機字長有關
地址字段的位數與計算機通用寄存器數量相關
3、直接尋址
地址碼字段直接給出操作數在內存的地址,
例 MOV AX,[200H]
特點:
提供訪問主存的操作
獲得數據要訪問主存,指令執行速度慢
地址字段的位數決定了訪存空間大小
4、間接尋址
地址碼字段給出的是操作數主存地址的地址
例 MOV AX,I[200H]
這里的I表示間接尋址
特點:
解決了直接尋址方式下地址字段的位數限制訪存范圍大小的問題
獲得數據要訪問主存2次,指令執行速度太慢。
5、寄存器間接尋址
地址碼給出的是寄存器編碼R
特點:
解決了直接尋址方式下地址字段的位數限制訪存范圍大小的問題
獲得數據只需訪問主存1次
6、相對尋址
特點:
可節省指令中的地址位數,便於程序在內存中成塊移動
注意PC的改變對計算E的影響,如 本例中E=200+2000+2
若計算機字長32位,且PC的值在取值階段修改,則讀完地址后,PC要加4,因為32位占了四個字節。
7、基址尋址
指定一個基址寄存器B,與本指令地址無關
E=D+(B),D為指令中地址字段的值
例:
MOV AX,32[B]
特點:
使用基址寄存器可以訪問更大的主存空間(基址寄存器可以設置成比通用寄存器還大的位數)
對某一程序而言,基址值設定后不變,故要訪問不同數據需修改D
8、變址尋址
指定一個變址寄存器X,與本指令地址無關,內容可隨便要求改變
E=D+(X),D為指令中地址字段的值
MOV AX,32[SI] SI,DI都稱為變址寄存器
特點:
不改變指令即可改變數據的有效地址,可在循環中使用
在字符串處理,向量運算等等成批數據處理中非常有用
9、數據尋址方式總結