<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

8086尋址方式

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏
BTW--符號的說(shuō)明:

PA表示某一存儲單元的物理地址
EA表示某一存儲單元的有效地址
(地址)表示地址的內容
[地址]表示地址的內容為偏移地址
DEST表示目的地址,即目的操作數存放的偏移地址
SOUR表示源地址,即源操作數存放的偏移地址
-表示傳送。如:(AX)-BX表示把AX的內容傳送給BX
?邏輯與
?邏輯或
邏輯異或
----上劃線(xiàn)表示邏輯非
____下劃線(xiàn)表示從鍵盤(pán)輸入
或者
Flags表示狀態(tài)寄存器

8086和8088 CPU就功能而言可分成兩大部分:總線(xiàn)接口單元BIU(Bus Inte***ce Unit)和執行單元EU(Execution Unit)

EU主要實(shí)現兩種操作:一是根據指令進(jìn)行算術(shù)邏輯運算。二是由計算出指令要求尋址單元地址偏移量,以形成一個(gè)20位物理地址,去存取器存取所要求的操作數。
BIU主要負責80868088 CPU與存儲器和外設之間的信息傳送,BIU用來(lái)實(shí)現EU所有總線(xiàn)操作。
在EU執行指令的過(guò)程中,BIU負責從內存指定區域取出傳送給EU部分去執行。在執行指令時(shí),所需的操作數也是由BIU從內存指定區域取出傳送給EU部分執行。

與數據有關(guān)的尋址方式

1 立即尋址方式(Immediate addressing)

立即數可以是8位的或16位的。如果是16 位數,則高位字節存放在高地址中,低位字節存放在低地址中,如果是32 位數,則高位字在高地址中,低位字在低地址中。

  立即尋址方式常用于給寄存器賦初值,并且只能用于源操作數字段,不能用于目的操作數字段。


例 MOV AL, 9
         指令執行后,(AL)= 09H

例 MOV AX, 3064H
         指令執行后,(AX)= 3064H

注意:不能直接給段寄存器和標志寄存器賦予立即數。

     顯然,下面的指令是錯誤的:
     MOV DS, 1250H

2 寄存器尋址方式(Register addressing)

  對于16位操作數,寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP、CS、DS、ES和SS;對于8位操作數,寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH。由于操作數就在寄存器中,指令執行時(shí)不需要訪(fǎng)問(wèn)存儲器,因此這是一種快速的尋址方式。

例 MOV  AX, BX
          如指令執行前(AX)= 1234H,(BX)= 5678H;
          則指令執行后(AX)= 5678H,(BX)保持不變。

  注意:源寄存器和目的寄存器的位數必須一致。

  例如:MOV CL, BX是一條錯誤指令。


  除上述兩種尋址方式外,下面五種尋址方式的操作數都在除代碼段以外的存儲區中。
  這里先引入有效地址EA(Effective Address)的概念:在8086里,把操作數的偏移地址稱(chēng)為有效地址,下面五種計算EA的方法體現了五種尋址方式。

3 直接尋址方式(Direct addressing)

  在這種尋址方式中,操作數存放在存儲單元中,而這個(gè)存儲單元的有效地址就在指令的操作碼之后,操作數的物理地址可通過(guò)((DS)×16)再加上這個(gè)有效地址形成。
  
  在匯編語(yǔ)言指令中,可以用符號地址(變量名或標號)代替數值地址。
  例如: MOV AX, DATA
    或 MOV AX, [DATA]
    這里DATA是存放操作數單元的符號地址。

  直接尋址方式默認操作數在數據段中,如果操作數定義在其它段中,則應在指令中指定段跨越前綴。
  例如: MOV AX, ES:NUMBER
    或 MOV AX, ES:[NUMBER]
    這里NUMBER是附加段中的字變量。

  直接尋址方式適合于處理單個(gè)變量。

例 MOV AX, [2000H]
         如果(DS)= 3000H,則執行情況如圖3.2所示。
         最后的執行結果為(AX)= 3050H。

4 寄存器相對尋址方式(Register indirect addressing)

  這種尋址方式通過(guò)基址寄存器BX、BP或變址寄存器SI、DI與一個(gè)位移量相加形成有效地址,計算物理地址的缺省段仍然是SI、DI和BX為DS,BP為SS?! ?br />
  寄存器相對尋址方式也可以使用段跨越前綴。
  例如:MOV AX, ES:[DI+10]

  這種尋址方式同樣可用于表格處理。
  表格的首地址可設置為位移量,修改基址或變址寄存器的內容取得表格中的值。

例 MOV AX, COUNT[SI](也可表示為MOV AX, [COUNT+SI])
        其中COUNT為16位位移量的符號地址。
        如果 (DS)= 3000H,(SI)= 2000H,COUNT = 3000H

        則物理地址 = 30000H + 2000H + 3000H = 35000H
        指令執行情況如圖3.4所示,最后的執行結果是(AX)= 1234H。

5 基址變址尋址方式(Based indexed addressing)

  這是一種基址加變址來(lái)定位操作數地址的方式,也就是說(shuō),操作數的有效地址是一個(gè)基址寄存器(BP或BX)和一個(gè)變址寄存器(SI或DI)的內容之和。如基址寄存器為BX時(shí),與DS形成的物理地址指向數據段;如基址寄存器為BP時(shí),與SS形成的物理地址指向堆棧段。如左圖所示?! ?br />
  此種尋址方式也可使用段跨越前綴。
  例如:MOV AX, ES:[BX][SI]

  注意:一條指令中同時(shí)使用基址寄存器或變址寄存器是錯誤的。
  例如:MOV CL, [BX+BP] 或 MOV AX, [SI+DI] 均為非法指令。

  這種尋址方式同樣適用于數組或表格處理。
  首地址可存放在基址寄存器中,而用變址寄存器來(lái)訪(fǎng)問(wèn)數組中的各個(gè)元素。由于兩個(gè)寄存器的值都可以修改,所以它比寄存器相對尋址方式更加靈活。

例 MOV AX, [BX][DI] (或寫(xiě)為 MOV AX, [BX+DI])
        如 (DS ) = 2100H,(BX)= 0158H,(DI)= 10A5H
        則 EA = 0158H +10A5H = 11FDH


        物理地址 = 21000H +11FDH = 221FDH
        指令執行情況如圖3.5所示,最后的執行結果是(AX)= 1234H。

6 相對基址變址尋址方式(Relative based indexed addressing)

  這種尋址方式與基址變址尋址方式類(lèi)似,不同的是基址加變址再加上一個(gè)位移量形成操作數的有效地址。缺省段的使用仍然是DS與BX組合,SS與BP組合?! ?br />
  這種尋址方式通常用于對二維數組的尋址。
  例如,存儲器中存放著(zhù)由多個(gè)記錄組成的文件,則位移量可指向文件之首,基址寄存器指向某個(gè)記錄,變址寄存器則指向該記錄中的一個(gè)元素。

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 8086尋址方

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>