X86 IDIV el signo del resto depende del signo del dividendo para 8 / -3 y -8/3?

¿Alguien puede explicarme por qué el signo del resto es diferente en estos casos? ¿Es esto un error del emulador o las CPU reales también lo hacen?

8 / -3 : quotient(AL) = -2 remainder(AH) =  2
-8 / 3 : quotient(AL) = -2 remainder(AH) = -2

Respuestas a la pregunta(1)

Su respuesta a la pregunta