Página 1 de 1

como chamar uma macro

MensagemEnviado: 03 Dez 2011 00:00
por diogo_18sp
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

MensagemEnviado: 03 Dez 2011 13:51
por jorgeluiz
da' um nome pra macro, e chama com as diretivas comuns : goto ou call.

MensagemEnviado: 03 Dez 2011 21:14
por RobL
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.

MensagemEnviado: 04 Dez 2011 07:31
por MOR_AL
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