8086可以對寄存器 - 位尋址嗎
可以
尋址方式就是尋找指令或操作數存放地址的方法。8086提供了8種操作方式,理解這8種尋址方式要聯繫8086微處理器的結構來學習。
尋址是去找指令或者操作數的存放的地址的,也就是去尋找操作數,最直接的尋址方式就是立即尋址方式,操作數直接就在指令之中。
例:MOV AX,1234H 直接將16進制數1234H存入寄存器AX中。
還可以對內存進行訪問,8位為一個字節,對內存中的每一個字節都編了號的,這個就是地址。只要知道了地址就可行了,地址既可以通過直接給出(直接尋址方式),也可以用計算得到。
例:MOV AX,[5634H] 用中括號括起來表示將其中的內容作為地址(偏移地址),還需通過加法器跟段寄存器中的地址相加,才能獲得20位得物理地址。
8086微處理器可以對寄存器與寄存器之間進行操作,其操作在CPU內部完成。即,寄存器尋址方式。
例:MOV AX,BX AX,BX均為寄存器。
還有寄存器間接尋址方式,將寄存器中的內容作為偏移量。
例:MOV AX,[BX] 用中括號將BX括起來表示將BX中的值作為地址。
基址變址尋址方式:其有效地址由一個基址寄存器和一個變址寄存器得方式確定,不能兩者均為變址寄存器。
例:MOV AX,[BX][SI]
MOV AX,[BX+SI]
MOV AX,CS:[BX+SI]
在上邊即基礎上在加上一個位移量,也可找到一個地址,這種方式叫做相對基址變址尋址方式。
例:MOV AX,TABLE[BX][SI]
MOV AX,TABLE[BX+SI]
mov AX,[BX+SI+TABLE] 上面三種方式等價
跟寄存器間接尋址差不多得還有寄存器相對間接尋址方式,在上面得基礎上面在加上一個位移量。這樣同樣可容易找到所存儲得位置,如果兩個均為沒有基地址則會出錯。
例:MOV CL,[BX+2000H] [位移量+基址寄存器名或變址寄存器名]
MOV AX,20H[SI] 位移量[基址寄存器名或變址寄存器名]
若選擇BX,SI,或DI寄存器提供得基地址或變地址,則操作數一般用DS提供基址,若選擇BP寄存器提供得基地址或變地址,則操作數在堆疊段,一般用SS提供基址。
除上述七種尋址方式外還有一類特殊得尋址方式,即隱含尋址。隱含尋址就是在指令中不出現操作數,但指令本身隱含指示了操作數得來源。