;wejscie r2,r3,r4,r5 ;3 bajty-r2,r3,r4 ;komorka r6 jest pomocniczna, do przechowywania pol-wynikow ; 12 34 56 | r4 r3 r2 ;* 12 |* r5 mnozenie: mov a,r2 ;[56h] mov b,r5 ;[12h] mul ab ;[b=06h, a=0ch] mov r2,a ;w r2 jest juz najmlodszy bajt (0) wyniku ! [0ch] mov r6,b ;mlodsza czesc bajtu 1 [06h] mov a,r3 ;[34h] mov b,r5 ;[12h] mul ab ;[b=03h, a=a8h, r6=06h] push acc ;przechowanie wyniku anl a,#08h ;usuniecie starszej czesci bajtu [a=08h] add a,r6 ;wynik mlodszej czesci bajtu 1 (08h+06h) [0eh] mov r6,a ;zapisanie wyniku do rej. pomoc. pop acc ;[b=03h, a=a8h, r6=0eh] anl a,#80h ;usuniecie mlodszej czesci bajtu [a=a0h] anl a,r6 ;polaczenie bajtu (1) [a=aeh] mov r3,a ;w r3 jest juz bajt (1) wyniku ! [aeh] mov r6,b ;mlodsza czesc bajtu 2 [03h] mov a,r4 ;[12h] mov b,r5 ;[12h] mul ab ;[b=01h, a=44h, r6=03h] push acc anl a,#08h ;usuniecie starszej czesci bajtu [a=04h] add a,r6 ;wynik mlodszej czesci bajtu 2 (04h+03h) mov r6,a ;zapisanie wyniku w rej. pomocniczym pop acc ;[b=01h, a=44h, r6=07h] anl a,#80h ;usuniecie mlodszej czesci bajtu [a=40h] orl a,r6 ;polaczenie bajtu (2) [a=47h] mov r4,a ;w r4 jest juz bajt (2) wyniku ! [47h] mov r6,b ;mlodsza czesc bajtu 3 [01h] mov r5,b ;w r5 jest juz najstarszy bajt (3) wyniku ! [01h] ret END