00001 #include "p18cxxx.inc"
00002 ;--- 8 bites egész számok szorzása -----------------
00003 udata_acs
00004 r res 1 ; részeredmény
00005 a res 1 ; ez a szorzandó
00006 b res 1 ; ez a szorzó
00007 n res 1 ; ciklusszámláló
00008 RST CODE
00009 goto start
00010 ;--- a * b kiszámítása
00011 ;--- a végeredmény a:b-ben lesz
00012 PGM CODE
00013 start: movlw 0xff
00014 movwf a ; a=255
00015 movlw 0xff
00016 movwf b ; b=255
00017 clrf r
00018 movlw 8
00019 movwf n ; n=8
00020 bcf STATUS,C ; C=0
00021 ciklus: rrcf b
00022 bnc next ; Átlépés, ha C=0
00023 movf a,W
00024 addwf r ; C:r = r+a
00025 next: rrcf r ; r léptetése (r<0> -> C!!!)
00026 decfsz n ; n = n-1
00027 bra ciklus ; folytatás, amíg n>0
00028 rrcf b ; (C:b) >> 1
00029 movff r,a
00030 nop
00031 goto $-2
00032 END