彙編指令長度計算方法

2021-05-22 21:00:33 字數 760 閱讀 6963

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

一、沒有運算元的指令,指令長度為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位元組。如 es ds cbwxlat 等。二 運算元只涉及暫存器的指令,指令長度為2位元組。如 mov al,si mov ax,bx si mov ds,ax 等。三 運算元涉及記憶體位址的指令,指令長度為3位元組。如 ...

組合語言計算方法

mov ax,f4a3h ax f4a3h mov ah,31h ax 31a3h mov al,23h ax 3123h add ax,ax ax 6246h mov bx,826ch bx 826ch mov cx,ax cx 6246h mov ax,bx ax 826ch add ax,bx...

組合語言指令長度

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