彙編除法指令div需要注意的

2021-08-31 08:40:27 字數 2011 閱讀 6542

div是除法指令,使用div做除法的時候應注意以下問題:

1、除數:有8位和16位兩種,在乙個暫存器或者記憶體中。

2、被除數:預設放在ax或(dx和ax)中,如果除數為8位,被除數為16位,被除數預設在ax中存放,如果除數為16位,被除數為32位,被 除數則在(dx和ax)中存放,dx存放高16位,ax存放低16位。

3、結果:如果除數是8位,則al儲存除法操作的商,ah儲存除法操作的餘數;如果除數是16位,則ax儲存除法操作的商,dx儲存除法操作的餘數。

格式如下:

div reg

div 記憶體單元

以100001/100為例,100001大於65535,所以只能用dx和ax兩個暫存器聯合存放100001,也就是說要進行16位的除法。除數100小於255,可以在乙個8位的暫存器中存放,但是被除數是32位的,除數應為16位,所以要使用乙個16位的暫存器來存放除數100.

dx和ax分別存放100001的高16位和低16位值,所以將100001表示為16進製制的形式:186a1h.

程式如下:

view plaincopy to clipboardprint?

datas segment

;此處輸入資料段**

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov dx,1

mov ax,86a1h

mov bx,100

div bx

mov ax,4c00h

int 21h

codes ends

end start

datas segment

;此處輸入資料段**

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov dx,1

mov ax,86a1h

mov bx,100

div bx

mov ax,4c00h

int 21h

codes ends

end start

程式執行後,ax=03e8h,dx=1(餘數是1),在debug中檢視如下所示:

-pax=86a1 bx=0000 cx=0010 dx=0001 sp=0000 bp=0000 si=0000 di=0000

ds=0ba5 es=0ba5 ss=0bb5 cs=0bb5 ip=0006 nv up ei pl nz na po nc

0bb5:0006 bb6400 mov bx,0064

-pax=86a1 bx=0064 cx=0010 dx=0001 sp=0000 bp=0000 si=0000 di=0000

ds=0ba5 es=0ba5 ss=0bb5 cs=0bb5 ip=0009 nv up ei pl nz na po nc

0bb5:0009 f7f3 div bx

-pax=03e8 bx=0064 cx=0010 dx=0001 sp=0000 bp=0000 si=0000 di=0000

ds=0ba5 es=0ba5 ss=0bb5 cs=0bb5 ip=000b nv up ei pl nz ac po nc

0bb5:000b b8004c mov ax,4c00

-pax=4c00 bx=0064 cx=0010 dx=0001 sp=0000 bp=0000 si=0000 di=0000

ds=0ba5 es=0ba5 ss=0bb5 cs=0bb5 ip=000e nv up ei pl nz ac po nc

0bb5:000e cd21 int 21

-p本文**:

彙編 div 除法指令

mov ax,10h 被除數為16位,儲存在ax mov dl,3 除數儲存在暫存器中,除數為8位 mov dl,ds 3 除數儲存在記憶體中,除數為8位 div dl 商儲存在al,餘數儲存在ah mov ax,4c00h int 21h code ends end start assume cs...

ARM指令需要注意的幾點問題

1 對於bx 分支並且轉換狀態指令,需要注意 在指令最低位確定分支處的 型別 arm 1,thumb 0 因此我們可以通過指令修改最後一位,使bx指令等效轉化成由具有bl功能的其它幾條指令。adrl r0,thumbfun 1 無論字對齊還是半字對齊,最低位都為零,而轉換處理器狀態需要設定最低位,因...

需要注意的問題

決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...