DIRECTIVAS DEL ENSAMBLADOR MPASM 1.

Anuncio
DIRECTIVAS DEL ENSAMBLADOR MPASM
1.- Directivas para carga o reserva en la Memoria de Programa
DATA
Inicializa una o más palabras de la memoria de programa con
datos o tiras de caracteres
DATA 0x012, 0x1345
DATA “Prueba 1,2,3”
DA
Almacena en paquetes de 14 bits dos caracteres ASCII
representados con 7 bits
DA “abcdef”
DB
Reserva e inicializa bytes en la memoria de programa
DB ’T’, 0xF0, ‘S’
DW
Reserva e inicializa palabras en la memoria de programa
DW 0x39, 0x45B
DT
Genera una serie de instrucciones RETLW, una por cada
expresión que acompaña a la directiva
DT
DE
1, 2, 3, 5, 7
Reserva y carga posiciones de la memoria de programa con
bytes, en principio estaba pensada para rellenar la EEPROM de
datos (empieza en la 0x2100), pero se puede emplear para
cualquier posición de memoria de programa
ORG 0x2100
DE “Programa version 1.0”
FILL
Rellena un número de posiciones de memoria de programa con
un mismo contenido (dato o instrucción si va entre paréntesis)
FILL 0x190F, 5
Resumen de Directivas del Ensamblador MPASM ©ATE-Uniovi
1/7
RES
Reserva un determinado número de posiciones de la memoria de
programa (avanza el puntero de cuenta de posición en la
memoria de programa)
RES 64
_ _CONFIG Carga la palabra de configuración del microcontrolador,
previamente se debe haber declarado el microcontrolador
_ _CONFIG 0x3F43
_ _IDLOCS Se emplea para cargar las 4 posiciones de identificación del
microcontrolador. Se debe haber declarado previamente el
microcontrolador
_ _IDLOCS 1234
Resumen de Directivas del Ensamblador MPASM ©ATE-Uniovi
2/7
2.- Directivas de Control
CBLOCK
ENDC
Se emplean para declarar inicio y final de un bloque de
constantes. Se asignan valores correlativos
CBLOCK
0x20
A, B, C, D
;A = 0x20, B=0x21, C=0x22, D=0x23
ENDC
CONSTANT Las dos se emplean para asignar expresiones a símbolos
EQU
esos símbolos no pueden luego cambiar de valor (son
constantes). Sintaxis distinta, pero igual efecto
longitud
CONSTANT
EQU
longitud=0x10
0x10
VARIABLE Las dos se emplean para asignar expresiones a símbolos
SET
esos símbolos pueden cambiar de valor (son variables). Sintaxis
distinta, pero igual efecto
BUFFER
#DEFINE
VARIABLE
SET
BUFFER=0x20
0x20
Se emplea para definir una etiqueta para una tira de
caracteres siempre que aparezca la etiqueta, se sustituye
directamente por la tira
#DEFINE
bit_0
STATUS,RP0
#UNDEFINE Anula una asignación previa realizada con #DEFINE
#UNDEFINE
ORG
bit_0
Sitúa el código que se vaya generando después a partir de la
posición especificada
ORG 0x100
END
Final de código fuente
END
Resumen de Directivas del Ensamblador MPASM ©ATE-Uniovi
3/7
INCLUDE
Se incluye el fichero especificado, se inserta en la posición y
será ensamblado
INCLUDE
INCLUDE
RADIX
“c:\mplab\PIC16F877.INC”
<PIC16F877.INC>
Se especifica el RADIX que se está usando
RADIX
dec
;pueden ser hex ú oct
PROCESSOR Define el tipo de microcontrolador
PROCESSOR 16F877
Para controlar la generación del fichero de listado (.LST):
TITLE
Título en la cabecera de las páginas
SUBTITLE Subtítulo (segunda línea) en cabecera
SPACE
Inserta líneas en blanco
PAGE
Inserta salto de página
LIST
Habilita listado y opciones del mismo
NOLIST
Deshabilita generación en fichero .LST
MESSG
Saca mensajes en el fichero .LST
ERROR
También para sacar mensajes en .LST
ERRORLEVEL Especifica tipos de mensajes que aparecerán en fichero.LST
ERRORLEVEL 0 ;Errores, warnings y mensajes
ERRORLEVEL 1 ;Warnings y errores
ERRORLEVEL 2 ;Errores
Resumen de Directivas del Ensamblador MPASM ©ATE-Uniovi
4/7
3.- Directivas de Ensamblado condicional
IF expresión
Grupo de directivas e instrucciones que se ensamblan si es cierta la
expresión
ENDIF
p.e.
IF versión==1
MOVLW 0x0A
MOVWF PORTB
ENDIF
IF
expresión
Si la expresión es cierta
Se ensambla este grupo
Grupo 1 de Directivas e Instrucciones
ELSE
y si es falsa, este otro
Grupo 2 de Directivas e Instrucciones
ENDIF
IFDEF etiqueta
Puede sustituir en las dos directivas anteriores IF expresión
Se ensambla si está definida la etiqueta
#DEFINE DE_B_a_A
….
p.e.
1
IFDEF DE_B_a_A
MOVF PORTB,w
MOVWF PORTA
ELSE
MOVF PORTA,W
MOVWF PORTB
ENDIF
Resumen de Directivas del Ensamblador MPASM ©ATE-Uniovi
5/7
IFNDEF etiqueta
Puede sustituir en las dos directivas anteriores IF expresión
Se ensambla si no está definida la etiqueta
WHILE expresión
Grupo de instrucciones y directivas que se ensamblan mientras la
expresión sea cierta
ENDW
p.e.
VARIABLE i
i=0
WHILE i < CONTADOR
RETLW i
i+=1
ENDW
Resumen de Directivas del Ensamblador MPASM ©ATE-Uniovi
6/7
4.- Macros
Una macro es un conjunto de instrucciones que pueden ser insertadas en el
código fuente mediante una simple llamada a macro.
Una macro debe ser definida primero antes de poder ser llamada en el
código fuente siguiente.
Una macro puede llamar a otra macro o a sí misma de manera recursiva
Definición de una macro:
Etiqueta
MACRO
argumento1, arguento2, argumento3,…
Conjunto de Instrucciones
EXITM (salida intermedia opcional)
Más instrucciones
ENDM
Utilización de una macro (llamada):
Etiqueta_de_Macro
arg1, arg2, arg3
p.e. Definiciones:
Banco_0
Banco_1
MACRO
bcf
bcf
ENDM
STATUS,RP0
STATUS,RP1
MACRO
bsf
bcf
ENDM
STATUS,RP0
STATUS,RP1
Utilización:
movlw 0xF0
Banco_1
movwf TRISB
Banco_0
Resumen de Directivas del Ensamblador MPASM ©ATE-Uniovi
7/7
Descargar