【微機原理】8086的尋址方式

以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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章