asignación de mul y memoria en registros edx :: eax con masm

Estoy tratando de entender la lógica de usar el operando "mul" en el ensamblador (estoy usando Visual Studio Community y MASM). ¿Por qué, después de "mul ebx" el resultado está cambiando también edx, y no solo el eax? "El resultado (de MUL) se almacena en el registro AX, el par de registros DX: AX o el par de registros EDX: EAX (dependiendo del tamaño del operando), con los bits de orden superior del producto contenidos en el registro AH, DX o EDX ". Entonces, ¿la ubicación depende del tamaño del operando? ¿En qué caso?

.586
.model flat,c
.stack 100h
.data

.code

 doit proc

        ;EAX = 0062EEF0 EBX = 7EFDE000 ECX = 0029FD00 EDX = 00000000     
     mov eax,8;
        ;EAX = 00000008
     mov ebx,4
        ;EBX = 00000004 
     mov edx,23498
        ;EDX = 00005BCA 
     mul ebx
        ;EAX = 00000020 EDX = 00000000 ????  4*8 =20(hexa).So, there is no 
                                       ;overflow;why is edx changing too?


 doit endp

end 

Respuestas a la pregunta(3)

Su respuesta a la pregunta