以MOV指令爲例,其格式爲:
MOV 目的操作數,源操作數
1.立即尋址
可以是8位或16位,如:
MOV AX,1234H
2.寄存器尋址
操作數事先存放在寄存器中,如:
MOV AX,BX
MOV AL,BL
3.存儲器尋址
我們將操作數的地址偏移量稱爲有效地址(Effective Address,EA)
EA=基址+變址+位移量
基址只能存放在BX或BP中;變址只能存放在SI或DI中;位移量可以是8位或16位的帶符號地址(可以是負數),例如:
BX+SI+1234H
基址、變址、位移量都是可選的,比如可以只有基址和位移量,叫寄存器相對尋址。
4.端口尋址
直接端口尋址。此時端口地址只有八位,如:
IN AL,20H ;從20H號端口讀入8位數據
OUT 20H,AX ;把AX中的內容送到20H端口和21H端口
;其中AL的值送20H,AH的值送21H
;輸入輸出只能逐個字節處理,當嘗試用字進行輸入輸出,會按並行處理
間接端口尋址。此時端口地址爲16位,需要將端口地址放於寄存器DX中再去尋址,如:
MOV DX,1000H ;端口地址爲1000H
OUT DX,AL ;間接端口尋址
MOV DX,20H ;彙編程序會自動在20H前補零變爲16位的0020H
IN AX,DX ;將[0020H]端口的值送AL
;並將[0021H]端口的值送AH