calculo em asm (Resolvido)

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor diogo_18sp » 27 Jul 2010 22:52

boa noite caros amigos com muita paciencia e ajuda de todos consegui terminar a rotina que multiplica o valor do registrador ad para conseguir minha escala de 0 a 5 vcc ,daria para ter feito em c so que sou meio fanatico por asm foi a minha primeira linguagem que aprendi mas acho que isso nao vem ao caso, entao tirei os bugs que haviam na rotina agora esta em perfeito funcionamento logo posto ela aki e tbm meu circuito onde irei aplicar este programa que fiz quando terminar o resto do programo compartilho com todos obrigado a todos deste forum.
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Mensagempor diogo_18sp » 27 Jul 2010 23:24

aqui esta o codigo


multi
clrf flag
clrf multi_l
clrf multi_h
movlw 0x05
movwf auxi_multi
movf aux_ad,f
btfss status,z
goto nao_zero
return
nao_zero
movf aux_ad,f
btfss status,z
goto podemul
goto volta_mul
podemul
movf aux_ad,w
movwf multi_l
movwf auxi_metade
rrf auxi_metade,f
goto volta_mul
btfss status,c
goto volta_mul
clrf auxi_metade
volta_mul
decfsz auxi_multi,f
goto mult
movlw 0x04
movwf auxi_multi
goto soma
mult
bcf status,c
rlf multi_l,f
rlf multi_h,f
btfss status,c
goto volta_mul
bsf flag,0
goto volta_mul

;********************
soma
decfsz auxi_multi,f
goto cont
goto soma_50
cont
bcf status,c
movf aux_ad,w
addwf multi_l,f
btfss status,c
goto soma
movlw 0x01
addwf multi_h,f
goto soma
soma_50

bcf status,c
movf auxi_metade,w
addwf multi_l,f
btfss status,c
goto n_houve1
movlw 0x01
addwf multi_h,f
return
n_houve1

return
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Mensagempor Djalma Toledo Rodrigues » 28 Jul 2010 10:42

diogo_18sp escreveu:
return
n_houve1

return


Sugestão:
Uma Sub Rotina deve possuir apenas um único return

essa instrução encerra a Sub Rotina

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor diogo_18sp » 28 Jul 2010 12:30

Djalma Toledo Rodrigues escreveu:
diogo_18sp escreveu:
return
n_houve1

return


Sugestão:
Uma Sub Rotina deve possuir apenas um único return

essa instrução encerra a Sub Rotina

DJ


foi mal foi um erro na hora que copiei o arquivo e colei ai no programa esta sem este return valeu por me avisar
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Mensagempor EvandrPic » 28 Jul 2010 19:14

diogo_18sp escreveu:
Djalma Toledo Rodrigues escreveu:
diogo_18sp escreveu:
return
n_houve1

return


Sugestão:
Uma Sub Rotina deve possuir apenas um único return

essa instrução encerra a Sub Rotina

DJ


foi mal foi um erro na hora que copiei o arquivo e colei ai no programa esta sem este return valeu por me avisar


Então é bom você editar o post que você postou a rotina para que futuramente não copiem com este erro... :shock:
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Mensagempor diogo_18sp » 29 Jul 2010 12:17

corrigido

multi
clrf flag
clrf multi_l
clrf multi_h
movlw 0x05
movwf auxi_multi
movf aux_ad,f
btfss status,z
goto nao_zero
return
nao_zero
movf aux_ad,f
btfss status,z
goto podemul
goto volta_mul
podemul
movf aux_ad,w
movwf multi_l
movwf auxi_metade
rrf auxi_metade,f
goto volta_mul
btfss status,c
goto volta_mul
clrf auxi_metade
volta_mul
decfsz auxi_multi,f
goto mult
movlw 0x04
movwf auxi_multi
goto soma
mult
bcf status,c
rlf multi_l,f
rlf multi_h,f
btfss status,c
goto volta_mul
bsf flag,0
goto volta_mul

;********************
soma
decfsz auxi_multi,f
goto cont
goto soma_50
cont
bcf status,c
movf aux_ad,w
addwf multi_l,f
btfss status,c
goto soma
movlw 0x01
addwf multi_h,f
goto soma
soma_50
bcf status,c
movf auxi_metade,w
addwf multi_l,f
btfss status,c
goto n_houve1
movlw 0x01
addwf multi_h,f
return
n_houve1
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Anterior

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x