彙編 定址方式

2021-06-01 01:23:42 字數 1550 閱讀 8534

定址方式

1立即定址方式

運算元包含在指令中,作為指令的一部分,跟在操作碼後存放在**段。這種運算元稱為立即數,可以是16位,也可以是8位。前者按照高高低低原則存放。

例子:mov ax, 1234h

2暫存器定址方式

運算元在cpu內部的暫存器中,指令中指定暫存器號。對於16位運算元,暫存器可以是ax,bx,cx,dx,si,di,sp和bp等;對於8位運算元,暫存器可以是al,ah等。

例子:mov si, ax

mov al,dh

目的和源運算元都是暫存器定址。3.1中的目的運算元也是暫存器定址。

由於運算元在暫存器中,不需要訪問儲存器來取運算元,所以採用這種定址方式指令執行速度最快。

3直接定址方式

運算元在儲存器中,指令直接包含有運算元的有效位址。運算元一般存放在資料段,所以運算元的位址由ds加上指令中直接給出的16位偏移得到。

4暫存器間接定址方式

運算元在儲存器中,運算元有效位址在si,di,bx,bp這四個暫存器之一中。如果有效位址在si,di和bx中,則以ds段暫存器之內容為段值;如果有效位址在bp中,則以ss段暫存器之內容為段值。也就是說運算元可能在資料段,也可能在堆疊段。

例子1: mov ax, [si]

假設:(ds)=50000h, (si)=1234h

例子2:mov [bp],cx

此條指令中目的運算元採用暫存器間接定址,由於使用bp作為指標暫存器,所以預設的段暫存器是ss。

注意 mov [si],ax ;目的運算元暫存器間接定址

mov si, ax ;目的運算元暫存器定址

5暫存器相對定址方式

一般情況下,如果si,di或bx之內容作為有效位址的一部分,那麼引用的段暫存器是ds;如果bp之內容作為有效位址的一部分,那麼引用的段暫存器是ss。

例子: mov ax, [di+1223h]   <=>   mov ax, 1223h[di]

假設: (ds)=50000h, (di)=3678h

6 基址加變址定址方式

運算元在儲存器中,運算元的有效位址由基址暫存器之一的內容與變址暫存器之一的內容相加而得。

例子: mov ax, [bx+di]   <=>  mov ax, [bx][di]

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

例子: mov ax, [bx+di-2]

例子: mov ax, [bx+di+1223h]

<=>   mov ax, 1223h[bx+di]

<=>   mov ax, 1223h[bx][di]

<=>   mov ax, 1223h[di][bx]

彙編 定址方式

定址方式 1立即定址方式 運算元包含在指令中,作為指令的一部分,跟在操作碼後存放在 段。這種運算元稱為立即數,可以是16位,也可以是8位。前者按照高高低低原則存放。例子 mov ax,1234h 2暫存器定址方式 運算元在cpu內部的暫存器中,指令中指定暫存器號。對於16位運算元,暫存器可以是ax,...

彙編定址方式總結

命令 mov dowrd ptr ds esi edi 解釋 od自動反編譯了 ds ss自動加入了,不需要手動 ds 0x10 esi 1 立即數定址 mov ax,1234 2 暫存器定址 所需要的運算元 存放在乙個暫存器裡 mov ax,bx mov bx,dx test ax,ax mov ...

彙編定址方式總結

一,暫存器定址 例如 mov ax,bx 運算元在cpu的兩個暫存器中。二,立即數定址 例如 mov ax,1234h 指令直接存放在指令 中。三,儲存器定址 1,直接定址 給出偏移量 mov al,es 1234h 運算元在 取決於,偏移量前給出的段暫存器。2,暫存器間接定址 mov ax,bx ...