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