mul и выделение памяти в регистрах edx :: eax с masm

Я пытаюсь понять логику использования операнда "mul" в ассемблере (я использую Visual Studio Community и MASM). Почему после "mul ebx" результат меняется также на edx, а не только на eax? «Результат (MUL) сохраняется в регистре AX, паре регистров DX: AX или паре регистров EDX: EAX (в зависимости от размера операнда), причем старшие биты произведения содержатся в регистре AH, DX или EDX». Так зависит ли расположение от размера операнда? В каком случае?

.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 

Ответы на вопрос(0)

Ваш ответ на вопрос