assembly x86-16 divide-by-zero

assembly - divide emu 8086 error de ensamblaje



x86-16 divide-by-zero (1)

Posible duplicado:
Desbordamiento de entero ASM x86

Recibo un error de división de errores y no estoy seguro de por qué. Aquí está el código completo que reproduce el error

include emu8086.inc org 100h mov ax, 2 mov bx, 10 div bx mov ax, 2 mov bx, 2 div bx ret


Intenta agregar xor dx, dx antes de cada div y ver si eso no ayuda.

Como está especificando un objetivo de 16 bits, div divide dx:ax por ese objetivo. Si dx comienza conteniendo un gran número (más exactamente, cualquier cosa menos un número pequeño), el resultado se desbordará. Incluso si no se desborda, su resultado no será simplemente ax / bx como aparentemente desea.