I was trying to divide (Unsigned) 8A32F4D5 by C9A5 using emu8086 tool. I expected the quotient to be AF73H and the remainder be 94B6H. After writing the following code, I was getting correct quotient but the remainder became 0000h. Am I missing something?
.MODEL SMALL
.STACK 100H
.DATA
.CODE
MAIN PROC
; initialize DS
MOV AX,@DATA
MOV DS,AX
; enter your code here
MOV DX, 8A32H
MOV AX, 0F4D5H
MOV BX, 0C9A5H
DIV BX
;exit to DOS
MOV AX,4C00H
INT 21H
MAIN ENDP
END MAIN
The output in EMU8086:

This looks like a bug in EMU8086. There is no division by zero nor is there an overflow with this unsigned division (DIV). You are correct that 0x8A32F4D5 divided by 0xC9A5 has a remainder of 0x94B6. To verify this I ran this code with Turbo Debugger in DOSBOX and got the expected results:

Had this been signed division using the IDIV instruction it would produce a division by zero exception because of division overflow.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With