彙編定址方式

來源:互聯網
上載者:User

一、寄存器
  8位寄存器有: AH、AL、BH、BL、CH、CL、DH和DL等;
  16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等;
  32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。
  記憶體中的變數儲存的是其位移地址

二、定址方式
1.立即定址:
  MOV AH, 80H  
  MOV ECX,123456H 
2.寄存器定址
  MOV EAX, EBX
  MOV VARD, EAX  
3.直接定址
  MOV BX, [1234H] ,執行時,(DS)=2000H,記憶體單元21234H的值為5213H。問該指令執行後,BX的值是什麼
  -->由於1234H是一個直接地址,它緊跟在指令的作業碼之後,隨取指令而被讀出;
  -->訪問資料區段的段寄存器是DS,所以,用DS的值和位移量1234H相加,得儲存單元的物理地址:21234H;
  -->取單元21234H的值5213H,並按“高高低低”的原則存入寄存器BX中。
 
 由於資料區段的段寄存器預設為DS,如果要指定訪問其它段內的資料,可在指令中用段首碼的方式顯式地書寫出來。
 MOV ES:[1000H], AX
4.寄存器間接定址
  MOV BX,[DI]
  -->若有效地址用SI、DI和BX等之一來指定,則其預設的段寄存器為DS;
  -->有效地址用BP來指定,則其預設的段寄存器為SS(即:堆棧段)。
5. 基址加變址定址
  MOV BX, [BX+SI]
  -->運算元在儲存空間中,其有效地址是一個基底位址暫存器(BX、BP)和一個變址寄存器(SI、DI)的內容之和
6.相對基址加變址定址
  MOV  AX, [BX+SI+200H]
  MOV AX, 1000H[BX+SI]
  -->運算元在儲存空間中,其有效地址是一個基底位址暫存器(BX、BP)的值、一個變址寄存器(SI、DI)的值和指令中的8位/16位位移量之和
7. 32位地址的定址方式
-->但在用32位寄存器定址時,不存在上述限制,所有32位寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP)都可以是地址位移量的一個組成部分。
32位基底位址暫存器是:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP;
32位變址寄存器是:EAX、EBX、ECX、EDX、ESI、EDI和EBP(除ESP之外)。
1、地址中寄存器的書寫順序決定該寄存器是基底位址暫存器,還是變址寄存
  [EBX+EBP]中的EBX是基底位址暫存器,EBP是變址寄存器,而[EBP+EBX]中的EBP是基底位址暫存器,EBX是變址寄存器;

2、預設段寄存器的選用取決於基底位址暫存器;

3、基底位址暫存器是EBP或ESP時,預設的段寄存器是SS,否則,預設的段寄存器是DS

三、其他
1.在沒有寄存器名存在的情況下,用操作符 X ptr 指明記憶體單元的長度,X在彙編指令中可以為word或byte
  mov word ptr [1000H],1
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.