Instrukcja powoduje pomnożenie zawartości rejestru EAX przez podaną daną.
MUL dana;
Dopuszczalna postać instrukcji:
mul rejestr;
mul pamięć;
Przyklady zastosowania:
mul ebx; - pomnożenie zawartości rejestru EAX przez zawartość rejestru EBX, wynik mnożenia zostanie zapisany w EAX
mul dword [dana]; - pomnożenie zawartości EAX przez 32 bitową liczbę zapisaną pod adresem wskazywanym przez etykietę dana,
wynik mnożenia zostanie zapisany w rejestrze EAX
Przykład:
mov ecx,10;
mov eax,15;
mul ecx; - wynik mnożenia zapisany zostanie w EAX, rejestr EDX zostanie wyzerowany, ECX nie ulegnie zmianie
Uwaga!
Przy 32 bitowym mnożeniu zmianie ulega także rejestr EDX, jeżeli wynikiem mnożenia jest liczba mieszcząca się w zakresie 32-bitów
wtedy rejestr EDX jest zerowany (EDX=0) natomiast gdy wynikiem mnożenia jest liczba większa (nie mieszcząca się w 32 bitach) to jej starsza część jest zapisana
w rejestrze EDX a młodsza w EAX.
Wszystkie powyższe informacje odnoszą się również do instrukcji IMUL z tym, że w przypadku IMUL wymnażane liczby są traktowane
jako liczby "ze znakiem" - po prostu rozróżniane są liczby dodatnie i ujemne. Przy zwykłym MUL każda liczba jest traktowana
jako liczba dodatnia.