关于8.7除法运算不明白的地方
其中有两个例程,计算100001/100和计算1001/100为什么仅仅对100001进行十进制转十六进制的操作,此时的除数也未进行进制转化,不会导致进制不统一吗?
求解答。 不用管的 转不转化都一样 编译之后都是2进制 你可以不转化试试 :smile:smile:smile:smile:smile:smile 其中有两个例程,计算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位 总结:
1.如果被除数的32位,则除数要为16位,结算结果商存放在ax中,余存放在dx中。
2.如果被除数是16位,则除数要为8位,结算结果商存放在al中,余存放在ah中。
页:
[1]