Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #INCLUDE <P12F629.INC>
- ;Valor A sera meu primeiro numero da sequencia
- A_reg3 EQU 0x20
- A_reg2 EQU 0x21
- A_reg1 EQU 0x22
- ;Valor B sera meu segundo numero da sequencia
- B_reg3 EQU 0x23
- B_reg2 EQU 0x24
- B_reg1 EQU 0x25
- ;Valor C sera meu terceiro numero da sequencia
- C_reg3 EQU 0x26
- C_reg2 EQU 0x27
- C_reg1 EQU 0x28
- ;VALOR TEMPORARIO DE ITERAÇÃO
- temp_reg3 EQU 0x30
- temp_reg2 EQU 0x31
- temp_reg1 EQU 0x32
- counter EQU 0x2A
- inic_prog ORG 0x00
- MOVLW 0X00 ;Mover valor 0 para primeiro numero
- MOVWF A_reg1
- MOVWF A_reg2
- MOVWF A_reg3
- MOVWF B_reg2 ;Mover zero para dois registradores de B mais significativos
- MOVWF B_reg3
- MOVWF C_reg2 ;Mover zero para dois registradores de C mais significativos
- MOVWF C_reg3
- MOVWF temp_reg2 ;Mover zero para dois registradores mais significativos
- MOVWF temp_reg3
- MOVLW 0X01
- MOVWF B_reg1 ;Segundo numero da sequencia é o 01.
- MOVWF C_reg1 ;Terceiro numero da sequencia é o 01.
- MOVLW 0x04
- MOVWF counter ;Mover o numero 4 para o contador, logica de contagem e parada.
- ;primeiro loop
- MAIN MOVF B_reg1,0 ;ADICIONO O SEGUNDO NUMERO COM O TERCEIRO.
- ADDWF C_reg1,0
- BTFSC STATUS,0 ;VERIFICA SE HOUVE CARRY
- GOTO LOOP_3 ;SE HOUVE CARRY VAI PARA O LOOP_3.
- MOVWF temp_reg1 ;GUARDA O VALOR EM REGIT. TEMPORARIO,ESSE SERA MEU NOVO NUMERO.
- MOVF B_reg2,0 ;termina de adicionar agora com registradores do meio.
- ADDWF C_reg2,0
- BTFSC STATUS,0
- GOTO LOOP_4 ;se houver carry vai para o loop_4
- MOVWF temp_reg2
- REG_3 MOVF B_reg3,0 ;LOOP FINAL PARA CASO NAO HAVER CARRY .
- ADDWF C_reg3,0
- MOVWF temp_reg3
- ;DESCARTANDO O ANTIGO
- LOOP_2 INCF counter,1 ;CONTADOR DE POSICAO
- MOVF B_reg1,0 ;ATUALIZO OS VALORES
- MOVWF A_reg1
- MOVF B_reg2,0 ;OCORRE A SUBSTITUIÇÃO
- MOVWF A_reg2
- MOVF B_reg3,0
- MOVWF A_reg3
- MOVF C_reg1,0
- MOVWF B_reg1
- MOVF C_reg2,0
- MOVWF B_reg2
- MOVF C_reg3,0
- MOVWF B_reg3
- MOVF temp_reg1,0
- MOVWF C_reg1
- MOVF temp_reg2,0
- MOVWF C_reg2
- MOVF temp_reg3,0
- MOVWF C_reg3
- BTFSS counter,5 ;SE 30 ELE PARA,30 POSIÇÕES
- GOTO MAIN
- GOTO end_prog
- ;SE CASO LOOP_3 FORADO,É PQ HOUVE CARRY ANTERIOR PROPAGADO PARA O SEGUNDO REGISTRADOR END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement