D i v 指令实现除法操作 \color{blue}\huge{Div指令实现除法操作} Div指令实现除法操作
d i v div div指令
被除数:
\color{red}{被除数:}
被除数:(默认)放在
a
x
ax
ax或者(
a
x
ax
ax和
d
x
dx
dx)。
除数:
\color{red}{除数:}
除数:
8
8
8位或者
16
16
16位(分情况讨论),存放在寄存器或者内存单元之中。
指令格式: \color{olive}{指令格式:} 指令格式:
div 寄存器/内存单元
除法实例 除法实例 除法实例
对于第一个除法:6789H ÷ A2H
,很明显被除数
6789
H
6789H
6789H可以由
a
x
ax
ax装下,除数
A
2
H
A2H
A2H也可以被
8
8
8位内存或寄存器装下。(
8
位
d
i
v
操作情况
\color{red}{8位div操作情况}
8位div操作情况)
对于第二个除法:12345678H ÷ 2E7H
,被除数
12345678
H
12345678H
12345678H无法用
a
x
ax
ax装下去,除数
2
E
F
7
H
2EF7H
2EF7H也不能被
8
8
8位的内存或寄存器装下。(
16
位
d
i
v
操作情况
\color{red}{16位div操作情况}
16位div操作情况)
d i v div div操作各个寄存器关系
操作的数据较小使用
8
8
8位的
d
i
v
div
div操作,操作的数据比较大使用
16
16
16位的
d
i
v
div
div操作。
当被除数大于
16
16
16位的时候,一个
a
x
ax
ax不能够存放下当前的被除数了。所以使用
d
x
dx
dx和
a
x
ax
ax一起来表示当前的被除数:
(
d
x
)
∗
10000
H
(
2
16
)
+
(
a
x
)
\red{(dx)*10000H(2^{16}) + (ax)}
(dx)∗10000H(216)+(ax)
将
d
x
dx
dx向左移
16
16
16位,之后加上
a
x
ax
ax,就完成
32
32
32位数据的存储。
div bx
和div word ptr
进行
d
i
v
div
div操作的基类型都是
16
16
16位,操作完全一致。
d i v div div实例
①.
186
A
1
H
186A1H
186A1H数据的大小已经超过了
16
16
16位,需要使用
16
16
16位的
d
i
v
div
div操作。
C o d e : \color{blue}{Code:} Code:
mov dx , 1
mov ax , 86A1
mov bx , 65 //65放到bx中表示16位div操作
div bx
②.
3
E
9
3E9
3E9这个数据很小,使用
8
8
8位
d
i
v
div
div操作即可。
C o d e : \color{blue}{Code:} Code:
mov ax , 3E9
mov bl , 64 //64放入bl中表示8位div操作
div bl