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