转载:
http://blog.csdn.net/ljianhui/article/details/17457317
看王爽的汇编语言,除法溢出这里终不能得其解,网上看到这篇文章,实在是一下子把我好久的迷惑戳开了
总结一下:
1、当8位数除以8位数时候,不能简单的将被除数放在AL中,就直接去除以8位除数,因为除法指令会将AH中无论什么毫无价值的内容都当成是被除数的最高有效8位数,所以在进行除法运算以前,必须下降AH清零,同理,16位的时候,也应该注意将DX清零。
2、利用div的功能,可以实现将高16位存放在DX中,而低16位存放在AX中,然后除以16位的除数,余数放置于DX中
这样,第二次再用刀DX的余数的时候,系统就会默认DX中的余数是高16位的,自动乘以2^16次方,然后再去加上AX中的低16位。