彙編指令長度

2021-06-06 23:24:46 字數 942 閱讀 7502

指令長度與定址方式有關係,規律或原則如下:

一、沒有運算元的指令,指令長度為1位元組。如

es:ds:

cbwxlat

等。二、運算元只涉及暫存器的指令,指令長度為2位元組。如

mov al,[si]

mov ax,[bx+si]

mov ds,ax

等。三、運算元涉及記憶體位址的指令,指令長度為3位元組。如

mov al,[bx+1]

mov ax,[bx+si+3]

lea di,[1234]

mov [2345],ax

等。四、運算元涉及立即數的指令,指令長度為:暫存器型別+2。

8位暫存器,暫存器型別=1;16位暫存器,暫存器型別=2。如

mov al,8 ;指令長度為2

mov ax,8 ;指令長度為3

等。五、跳轉指令,分3種情況,指令長度分別為2、3、5位元組。

1、段內跳轉,指令長度=(目標位址-指令當前位址)+1

jmp指令本身占用1個位元組。

(目標位址-指令當前位址)若能用1個位元組表示,則占用1個位元組,整體指令長度為2位元組;如

0113 jmp 0185 ;0185h-0113h=72h,72h可用1個位元組表示

若需2個位元組表示,則占用2個位元組,整體指令為3個位元組。如

0113 jmp 0845 ;0845h-0113h=732h,732h需用2個位元組表示

2、段間跳轉,指令長度為5位元組。如

jmp 1234:5678

組合語言指令長度

指令長度為1個位元組 指令長度為2個位元組 如 mov bx,ax 指令長度為3個位元組 如 mov ax,ds bx si idata 指令長度為 暫存器型別 1 8位暫存器,暫存器型別 1,如 mov al,8 指令長度為2個位元組 16位暫存器,暫存器型別 2,如 mov ax,8 指令長度為...

彙編指令長度計算方法

指令長度與定址方式有關係,規律或原則如下 一 沒有運算元的指令,指令長度為1位元組。如 es ds cbwxlat等。二 運算元只涉及暫存器的指令,指令長度為2位元組。如 mov al,si mov ax,bx si mov ds,ax等。三 運算元涉及記憶體位址的指令,指令長度為3位元組。如 mo...

獲取彙編指令的編碼位元組長度

皓哥筆直的背影,就是我前進的方向。想說這句話真的好久了 常常可以看見以下形式的彙編 行 xorq rdx,rdx 但是在產生這段彙編 的c 中,並沒有出現excllusive or操作 a.解釋這條特殊的exclusive or指令的效果,它實現了什麼有用的操作 b.更直接地表達這個操作的彙編 是什...