seabiter 发表于 2015-10-26 15:58:01

关于8.7除法运算不明白的地方

其中有两个例程,计算100001/100和计算1001/100
为什么仅仅对100001进行十进制转十六进制的操作,此时的除数也未进行进制转化,不会导致进制不统一吗?
求解答。

ritedouguai 发表于 2015-10-29 13:27:01

不用管的 转不转化都一样 编译之后都是2进制 你可以不转化试试

dps521 发表于 2015-11-28 13:26:15

:smile:smile:smile:smile:smile:smile

一念天堂 发表于 2015-11-29 17:11:53

其中有两个例程,计算100001/100和计算1001/100
为什么仅仅对100001进行十进制转十六进制的操作,此时的除数也未进行进制转化,不会导致进制不统一吗?
求解答。

被除数:也有16位和32位
        十进制:100001变成十六进制为:186A1H
        因为AX是16位放不下(最多放861A1),所以要用DX和AX一起来放。
                mov dx, 0001H
               mov ax, 86A1H 。

除法是16位/8位32位/16位两种

除数:有8位和16位两种
        十进制:100变成十六进制为:64H
        用一个8位寄存器就可以放下了。不过进行的是 32位/16位,
               mov bx, 0064H

100001/100 进行的是16位除法

除数和被除数都要放的下才可以。

记着加法、减法、乘法有8位对8位,16位对16位的统一,除法是16位/8位32位/16位

吃货YA鸭 发表于 2017-6-15 17:02:48

总结:
1.如果被除数的32位,则除数要为16位,结算结果商存放在ax中,余存放在dx中。
2.如果被除数是16位,则除数要为8位,结算结果商存放在al中,余存放在ah中。
页: [1]
查看完整版本: 关于8.7除法运算不明白的地方