尋找操作數實體位址的方式叫尋址方式
操作數的存放點
-
操作數在指令中
指令的操作數部分就是操作數本身
也叫立即數
-
操作數存放在CPU寄存器中
指令的操作數部分是寄存器的編碼
也叫寄存器操作數
-
操作數存放在記憶體中
指令的操作數部分包含操作數所在的記憶體位址
也叫儲存器操作數
尋址方式
-
立即數尋址
e.g.
特點:操作數直接放在指令中MOV AL, 10H
-
寄存器尋址
特點:指令中需給出寄存器名,寄存器中的内容即為操作數INC SI
- 儲存器尋址方式
-
直接尋址
例子
特點: p指令中直接給出有效位址EA:8位或16位位移量。 PA = (段寄存器)X 10H +指令中的EA 。 預設方式下:段寄存器是資料段DS。段跨越:指令增加段寄存器名字首:CS,ES,SS等MOV AL,[2000H] ; AL ← PA=DSx16+2000
-
寄存器間接尋址方式
例子
MOV AX,[SI] ;AX ← DSx16 + [SI],[SI+1]
MOV BH,[BP] ;BH ← SSx16 + BP
特點: 操作數的有效位址EA在寄存器中。 對16位尋址,EA隻能放在DI、SI、BX、 BP中 ,若EA在DI、SI、BX中,預設段為資料段DS ,若EA在BP中,預設段為堆棧段SS ,支援段跨越。MOV CX,ES:[BX] ;将ES段[BX][BX+1]内容送CL,CH
-
寄存器相對尋址方式
例子
特點 :給定基址/變址寄存器和相對偏移量,兩者之和為EA。 寄存器BX、SI、DI預設是資料段DS,寄存器BP預設堆棧段SS。 支援段跨越。MOV AX, [BX+10H] ; EA=(BX)+10H
-
基址變址尋址方式
例子
特點:有效位址EA是基址寄存器與變址寄存器的和。 預設段由基址寄存器決定。 支援段跨越。MOV AX, [BX+SI] ; EA=(BX)+(SI) ;DS段
-
相對基址變址尋址方式
特點 :有效位址EA是基址寄存器+變址寄存器+偏移量三者之和。 基址寄存器可取BX或BP,變址寄存器可取SI或DI。 段寄存器由基址寄存器決定 p基址寄存器是BX,則預設段為DS; p基址寄存器是BP,則預設段為SS。