como chamar uma macro

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

como chamar uma macro

Mensagempor diogo_18sp » 03 Dez 2011 00:00

ola boa noite caros colegas me ajudem com faço para chamar uma macro no mplab uso o velho assembler em meu programa , tipo como devo salvar esta macro em outro arquivo em qual tipo de extensao.asm,.inc..... me deem uma ajuda obrigado a todos
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Mensagempor jorgeluiz » 03 Dez 2011 13:51

da' um nome pra macro, e chama com as diretivas comuns : goto ou call.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor RobL » 03 Dez 2011 21:14

Se o que o jorgeluiz disse nao for suficiente tente:


Código: Selecionar todos
NomeDaMacro  MACRO  parametro1
                    movlw    parametro1
                    ENDM

;para chamar a macro

NomeDaMacro  0x12  ;carregou W com 0x12



Pode colocar tanto num .inc ou em um .asm mas terá que incluir o arquivo (include) no seu código.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor MOR_AL » 04 Dez 2011 07:31

Faço assim:

1 - No MPLAB
include <MacrosM.asm>; Chamei a macro de MacrosM.asm

2 - Crio o arquivo da macro MacrosM.asm. No exemplo tem apenas uma macro. (Caso desejar, incluir mais).

Código: Selecionar todos
;   Arquivo de Macros "MacrosM.ASM"
;
;   Utilizar a diretiva INCLUDE <MacrosM.ASM>


;1   Pule se o conteúdo do registro R1 for menor que o conteúdo do registro R2 (R1MeR2)   

      R1MeR2 macro R1, R2, End_R1_menor_que_R2

     movf   R2, w         ; w = R2
     subwf   R1, w         ; w = R1 - R2
     btfss   STATUS, C      ; Se C = 1 pule. (R1 ? R2)
     goto   End_R1_menor_que_R2   ; C = 0. (R1 < R2)
     endm      


3 - Coloco o arquivo da macro no mesmo diretório que contém o meu arquivo principal, o que tem meus códigos.

4 - Dentro do MPLAB chamo a macro:

Código: Selecionar todos
   R1MeR2   Registro1, Registro2, Endereço de desvio se Registro1 for menor que Registro2

Registro1, Registro2 são variáveis, registros que eu defini antes no MPLAB

MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ


Voltar para PIC

Quem está online

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

cron

x