Instrukcja mnoży zawartość akumulatora przez zawartość rejestru b.
MUL AB;
postać ogólna:
przykład:
mul AB;
mov A,#5; - wpisz do akumulatora liczbę 5
mov B,#2; - wpisz do rejestru B liczbę 2
mul AB; - wykonaj mnożenie (5*2)
(wykonanie mnożenia A*B, wynik mnożenia znajduje się w akumulatorze)
W powyższym przykładzie wynik mnożenia znajdzie się w akumulatorze, rejestr B zostane wyzerowany.
Co jednak w przypadku gdy wynik mnożenia będzie większy niż 255 (nie będzie mieścił się w akumulatorze)?
postać ogólna:
przykład:
mul AB;
mov A,#50; - wpisz do akumulatora liczbę 50
mov B,#6; - wpisz do rejestru B liczbę 6
mul AB; - wykonaj mnożenie (50*6)
(wykonanie mnożenia A*B, wynik mnożenia znajduje się w parze rejestrów BA)
Wynikiem mnożenia jest liczba 300 , w zapisie szesnastkowym: 012C. Liczba ta jest liczbą dwu-bajtową i w taki też sposób
należy ją rozpatrywać. 8051 dysponuje tylko rejestrami 8 bitowymi (jedno bajtowymi) więc zapisanie uzyskanego wyniku
do jednego rejestru nie jest możliwe w tym momencie przychodzi nam z pomocą rejestr B. Wynik jest rozbijamy na dwa
pojedyncze bajty i starszy z nich (01) jest zapisywany do rejestru B natomiast młodszy (2c) do akumulatora.