寄存器及七種定址方式

來源:互聯網
上載者:User

一、寄存器

總共有14個16位寄存器,8個8位寄存器

 

通用寄存器:

  資料寄存器:

  AH(8位)  AL(8位)  AX(16位)   (AX和AL又稱累加器)

  BH(8位)  BL(8位)  BX(16位)   (BX又稱基底位址暫存器,唯一作為儲存空間指標使用寄存器)  

  CH(8位)  CL(8位)  CX(16位)   (CX用於字串操作,控制迴圈的次數,CL用於移位)

  DH(8位)  DL(8位)  DX(16位)   (DX一般用來做32位的乘除法時存放被除數或者保留餘數)

 

  指標寄存器:

  SP 堆棧指標 (存放棧頂地址)

  BP 基址指標 (存放堆棧基址位移)

 

  變址寄存器:主要用於存放某個儲存單元地址的位移,或某組儲存單元開始地址的位移,

  即作為儲存空間(短)指標使用。作為通用寄存器,它們可以儲存16位算術邏輯運算中的操

  作數和運算結果,有時運算結果就是需要的儲存單元地址的位移.

 

  SI 源地址  (源變址寄存器)

  DI 目的地址 (目的變址寄存器)

  

控制寄存器:

  IP 指令指標

  FLAG 標誌寄存器

   ① 進位標誌 CF,記錄運算時最高有效位產生的進位值。

   ② 符號標誌 SF,記錄運算結果的符號。結果為負時置1,否則置0。

   ③ 零標誌  ZF,運算結果為0時ZF位置1,否則置0。

   ④ 溢出標誌 OF,在運算過程中,如運算元超出了機器可表示數的範圍稱為溢出。溢出時OF位置1,否則置0。

   ⑤ 輔助進位標誌 AF,記錄運算時第3位(半個位元組)產生的進位值。

   ⑥ 奇偶標誌 PF,用來為機器中傳送資訊時可能產生的代碼出錯情況提供檢驗條件。當結果運算元中1的個數為偶數時置1,否則置0。

 

段寄存器

  CS 程式碼片段  IP

  DS 資料區段  

  SS 堆棧段  SP BP

  ES 附加段

 

二、七種定址方式:

1、立即定址方式:

運算元就包含在指令中。作為指令的一部分,跟在作業碼後存放在程式碼片段。

這種運算元成為立即數。立即數可以是8位的,也可以是16位的。

例如:

    指令: MOV AX,1234H

      則: AX = 1234H

 

2、寄存器定址方式:

運算元在CPU內部的寄存器中,指令指定寄存器號。

對於16位運算元,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。

對於8位運算元,寄存器可以是AL 、AH、BL、BH、CL、CH、DL、DH。

這種定址方式由於運算元就在寄存器中,不需要訪問儲存空間來取得運算元

因而可以取得較高的運算數度。

 

3、直接定址方式:

運算元在寄存器中,指令直接包含有運算元的有效地址(位移地址)

註:運算元一般存放在資料區段

所以運算元的地址由DS加上指令中直接給出的16位位移得到。如果採用

段超越首碼,則運算元也可含在資料區段外的其他段中。

例如:

MOV AX,[8054]

如(DS) = 2000H,

則執行結果為(AX) = 3050H

(物理地址=20000+8054=28054H)

28054H裡的內容為3050H

 

在組合語言指令中,可以用符號地址代替數值地址

如:MOV AX,VALUE

此時VALUE為存放運算元單元的符號地址。

如寫成:MOV AX,[VALUE]也是可以的,兩者是等效的。

如VALUE在附加段中,則應指定段超越首碼如下:

MOV AX,ES:VALUE 或 MOV AX,ES:[VALUE]

 

4、寄存器間接定址方式:

運算元在寄存器中,運算元有效地址在SI、DI、BX、BP

這四個寄存器之一中。在一般情況下,如果有效地址在

SI、DI和BX中,則以DS段寄存器中的內容為段值。如果

有效地址在BP中,則以SS段寄存器中的內容為段值

例如:

MOV AX,[SI]

如果(DS) = 5000H (SI) = 1234H

則物理地址 =  50000 + 1234 = 51234H

51234H地址中的內容為:6789H

執行該指令後,(AX) = 6789H

 

5、寄存器相對定址方式:

運算元在儲存空間中,運算元的有效地址是一個基底位址暫存器(BX、BP)

或變址寄存器(SI、DI)的內容加上指令中給定的8位或16位位移量之和

 

    BX  8位 位移量

EA(有效地址) =  BP  + 

    SI  16位 位移量

    DI

在一般情況下,如果SI、DI、或BX中的內容作為有效地址的一部分,那麼

引用的段寄存器是DS;如果BP中的內容作為有效地址的一部分,那麼引用的

段寄存器是SS。

 

物理地址 = 16d × (DS) + (BX) + 8

           或(SI)或16位位移量

           或(DI)

物理地址 = 16d × (SS) + (BP) + 8位位移量

                       或16位位移量

在指令中給定的8位或16位位移量採用補碼形式表示。在計算有效地址時,如

位移量是8位,則被帶符號擴充成16位。

例如:

MOV AX,[DI+1223H]

假設,(DS) = 5000H,(DI) = 3678H

則物理地址 = 50000 + 3678 + 1233 = 5489BH

5489BH地址中的內容:55AAH

執行該指令後AX = 55AAH

下面指令中,源運算元採用寄存器相對定址,引用的段寄存器是SS: MOV BX,[BP-4]

下面指令中,目的運算元採用寄存器相對定址,引用的段寄存器是ES: MOV ES:[BX+5],AL

指令:MOV AX,[SI+3]與MOV AX,3[SI]是等價的

 

6、基址加變址定址方式:

運算元在寄存器中,運算元的有效地址由:

基底位址暫存器之一的內容與變址寄存器之一的內容相加

   BX   SI

即: EA =    + 

   BP   DI

在一般情況下,如果BP之內容作為有效地址的一部分,則以SS之內容為段值,否則已DS

為段值。

例如:

MOV AX,[BX][DI]

如:(DS)=2100H,

   (BX)=0158H,

   (DI)=10A5H

則EA=0158 + 10A5 = 11FD

物理地址=21000 + 11FD = 221FDH

221FDH地址中的內容:1234H

執行該指令後AX = 1234H

 

下面指令中,目的運算元採用基址加變址定址,

引用的段寄存器是DS: MOV DS:[BP+SI],AL

 

下面指令中,源運算元採用基址加變址定址,

引用的段寄存器ES: MOV AX,ES:[BX+SI]

 

這種定址方式使用與數組或表格處理。用基底位址暫存器存放數組首地址,而用變地寄存器

來定位元組中的各元素,或反之。由於兩個寄存器都可改變,所以能更加靈活地訪問數

組或表格中的元素。

下面的兩種表示方法是等價的:

MOV AX,[BX+DI]

MOV AX,[DI][BX]

 

7、相對基址加變址定址方式:

運算元在儲存空間中,運算元的有效地址由於基底位址暫存器之一的內容與變址寄存器之一的

內容及指令中給定的8位或16位位移量相加得到。

         BX    SI    8位

即: EA =     +     +      位移量

   BP    DI    16位

在一般情況下,如果BP中的內容作為有效地址的一部分,則以SS段寄存器中的內容為段

值,否則以DS段寄存器中的內容為段值。

在指令中給定的8位或16位位移量採用補碼形式表示。

在計算有效地址時,如果位移量是8位,那麼被帶符號擴充成16位。

當所得的有效地址操作FFFFH時,就取其64K的模

例如:

MOV AX,[BX+DI-2]

假設,(DS) = 5000H, (BX) = 1223H, DI = 54H, (51275) = 54H, (51276) = 76H

物理地址= 50000 + 1223 + 0054 + FFFE(-2 各位取反末位加一) = 51275H

執行該指令後 (AX) = 7654H

 

相對基址加變址這種定址方式的表示方法多種多樣,以下四種方法均是等價的:

MOV AX,[BX+DI+1234H], MOV AX,1234H[BX][DI]

MOV AX 1234H[BX+DI],  MOV AX,1234H[DI][BX]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.