Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #INCLUDE<P12F629.INC>
- counter EQU 0x20 ;primeiro contador
- cont EQU 0x30 ;segundo contador
- A_reg3 EQU 0x25 ;fatorial msb
- A_reg2 EQU 0x26 ;fatorial reg. meio
- A_reg1 EQU 0x27 ;fatorial lsb
- inic_prog ORG 0x00
- MOVLW 0x00
- MOVWF counter ;CONTADOR RECEBE O 0.
- MOVLW 0x01
- MOVWF 0x42 ;PARAMETRO DO REGISTRADOR 1 RECEBE 01.
- MOVWF 0x43 ;CONTADOR DA FUNCAO RECEBE 01.
- MOVLW 0x05
- MOVWF cont ;CONTADOR DE PARADA RECEBE 5.
- LOOP
- CALL funcao ;CHAMADA DE FUNCAO
- ;RETORNANDO VALORES
- INCF counter,1 ;INCREMENTA O CONTADOR
- INCF cont,1 ;INCREMENTA O SEGUNDO CONTADOR
- MOVF A_reg3,0
- MOVWF 0x40 ;O FATORIAL RECEBE OS VALORES MODIFICADOS QUE SAO NOSSOS PARAMETROS
- MOVF A_reg2,0
- MOVWF 0x41
- MOVF A_reg1,0
- MOVWF 0x42
- MOVF counter,0 ;ATUALIZO O CONTADOR
- MOVWF 0x43 ;RECEBE O SEGUNDO CONTADOR
- BTFSC cont,4 ;VERIFICO SE CONT FEZ ISSO 10 VEZES, SE SIM ELE PARA.
- GOTO fim_prog
- GOTO LOOP
- funcao CLRF A_reg3
- CLRF A_reg2
- CLRF A_reg1
- LOOP_1 MOVF A_reg1,0
- ADDWF 0x42,0 ;adiciona o nosso regA com 0x42(fatorial atual)
- BTFSC STATUS,0
- INCF A_reg2,1
- MOVWF A_reg1
- MOVF A_reg2,0
- ADDWF 0x41,0 ;adiciona o nosso reg do meio com 0x41
- BTFSC STATUS,0
- INCF A_reg3,1
- MOVWF A_reg2
- MOVF A_reg3,0
- ADDWF 0x40,0 ;adiciona o nosso reg lsb com 0x40
- MOVWF A_reg3
- DECFSZ 0x43,1 ;Decrementa ate nosso contador virar 0.
- GOTO LOOP_1
- RETURN
- fim_prog
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement