|
b0mov DLO,a b0mov a,R b0mov DHI,a b0bclr FC b0mov a,CLO adc EHI,a b0mov a,CHI adc DLO,a b0mov a,BLO adc DHI,a b0bts0 FC incms BHI nop ret ;;;;;==================================== Mpy16: ;;;INPUT (BY MULTIPLIER)AHI,ALO;(MULTIPLIER)BHI,BLO ;;;OUT DHI,DLO,EHI,ELO ;;;====================================== mov a,#10h b0mov counter,a clr DHI clr DLO b0bclr FC ;;;;; Mpyloop: rrcm BHI rrcm BLO b0bts1 FC jmp Notadd ;;;; mov a,ALO add DLO,a b0bts0 FC incms DHI nop mov a,AHI add DHI,a ;;;; Notadd: rrcm DHI rrcm DLO rrcm EHI rrcm ELO decms counter jmp Mpyloop ret ;;========================================== Div32: ;;;INPUT :(DIVID)AHI,ALO;(BY DIVID)DHI,DLO,EHI,ELO ;;;OUTPUT :(RESULT)BHI,BLO;(REST)CHI,CLO ;;========================================== mov a,#20h b0mov counter,a clr BHI clr BLO clr CHI clr CLO ;;;;;;;;;;; Divloop: b0bclr FC rlcm ELO rlcm EHI rlcm DLO rlcm DHI rlcm CLO rlcm CHI b0mov a,CHI sub a,AHI b0bts1 FZ jmp Nochk b0mov a,CLO sub a,ALO b0bts1 FC jmp Nogo jmp Nochk01
|