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