汇编语言的DIV指令
(2013-08-24 10:37:05)
标签:
汇编语言div指令除法余数 |
分类: 汇编 C语言(2/26) |
汇编语言的DIV指令是除法指令
A / B
除数B有 8位和16位两种,保存在一个reg寄存器里 或是内存单元中。
被除数A 默认存放在AX中(16位以内) 或 AX和DX中(32位,DX存放高16位,AX存放低16位)
结果: 如果除数B是8位,那么除法的结果AL保存商,AH保存余数,
公式如下:
举例说明:
100001的16进制是186A1H,这个被除数大于16位,所以要用32位来存储,DX存放高16位 0001,AX存放低16位 86A1H, 除数100可以存放在8位和16位都可以,但是如果除数100存放在8位中,因为上面说了,除数8位的话,运算的结果就会把商放入到AL中,AH保存余数。100001/100的商是1000余数是1 ,1000根本无法保存到AL中(AL最多保存255),所以必须将100保存到16位中
如果将上面的 mov bx,100 div bx 改位 mov bl,100 div bl 运行后会报错"DIVED
OVERFLOW" 也就除法结果溢出错误。

加载中…