标签: assembly emulation x86-16
CX等于14 AX等于16
IDIV CX
但是为什么在AL有37个。 在该行之前没有错误或错误。 我犯了哪个错误? 谢谢! 附:写在Emu8086上
答案 0 :(得分:1)
IDIV CX将32位值DX:AX除以CX,并将商存储在AX中,余数存储在DX中。
DX:AX
CX
AX
DX
因此DX指令之前IDIV的值很重要,您应该使用AX指令将DX签名扩展为CWD(在IDIV之前),或使用例如清除DX XOR DX,DX(DIV之前)。
IDIV
CWD
XOR DX,DX
DIV