En la lógica del DIV, en particular en esta parte de código:
...
sino si op es de tipo palabra =>
si DX:AX div op > FFh =>
INT 0
else
...
no deberia decir FFFFh?
Visto que en la descripcion dice:
"Si el cociente es mayor que el número máximo representable (FFh o FFFFh según sea el caso), el resultado queda indefinido y se genera unainterrupción tipo 0"