【发布时间】:2020-11-26 03:23:27
【问题描述】:
来自https://www.felixcloutier.com/x86/div:
...
temp ← AX / SRC;
IF temp > FFH
THEN #DE; (* Divide error *)
ELSE
AL ← temp;
AH ← AX MOD SRC;
FI;
...
对于div ah,SRC 将是ah。恕我直言,temp 将始终大于 FFH,因此将引发异常,因为:
- AX = 256*AH+AL
- 温度 = AX / AH = (256*AH+AL)/AH = 256 + AL/AH
- 温度超过
FFH
我错过了什么吗?
【问题讨论】:
-
你的推理似乎是正确的。
-
是的。但这不像他们为每个操作数制作单独的指令(尽管某些指令确实对特定操作数有特殊编码)。仅仅因为您可以使用毫无意义的操作数并不意味着他们专门实现了该行为。