You are on page 1of 42

09/06/2011

Directivas de MPASM

Directivas de MPASM
Directiva __BADRAM Descripcin Genera el cdigo que selecc iona el banc o de memoria de memoria RAM para direccionamiento indirec to Genera el cdigo que selecc iona el cdigo de memoria RAM Define un Bloque de Constantes Empieza la sec cin del cdigo ejecutable Especific a los bits de configurac in Dec lara los smbolos de las c onstantes Sintaxis Especific a las posiciones del RAM invlidas __badram <expr>

BANKISEL

bankisel <label>

BANKSEL CBLOCK CODE __CONFIG CONSTANT

banksel <label> cblock [<expr>] [<name>] c ode [<address>] __c onfig <expr> constant <label>[=<expr>,...,<label> [=<expr>]] [<label>] data<expr>,[,<expr>,..., <expr>] [<label>] data "<text_string>"[," <text_string>",...] [<label>] db <expr>[,<expr>,..., <expr>] [<label>] db "<text_string>"[," <text_string>",...] [<label>] de <expr>[,<expr>,..., <expr>] [<label>] de "<text_string>"[," <text_string>",...] define <name> [<value>] define <name> [<arg>,...,<arg>] <value> [<label>] dt <expr>[,<expr>,..., <expr>] [<label>] dt "<text_string>"[," <text_string>",...] [<label>] dw <expr>[,<expr>,..., <expr>] [<label>] dw "<text_string>"[," <text_string>",...] else end endc endm endw error "<text_string>" errorlevel 0|1|2| <+|-><message number>
1/42

DATA

Crea datos numricos y de texto

DB

Dec lara datos de un byte

DE

Define los datos de EEPROM

#DEFINE

Define una etiqueta de substitucin de texto

DT

Define tabla

DW

Dec lara datos de un word

ELSE END ENDC ENDIF ENDM ENDW EQU ERROR

Empieza el bloque alternativo de un IF Fin de bloque de programa Acaba un bloque c onstante automtico Fin de la definicin de una Macro Fin de un bucle de While Manda un mensaje de error

Fin del bloque de condiciones ensambladas endif

Define una constante para el ensamblador <label> equ <expr>

ERRORLEVEL Sita el nivel wanadoo.es//directivas_mpasm.htmdel error

09/06/2011

Directivas de MPASM

ERRORLEVEL Sita el nivel del error EXITM EXPAND EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF #INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND NOLIST ORG PAGE PAGESEL Salida de una Macro Expande una lista de Macro Dec lara una etiqueta externa Llena la memoria Exporta una etiqueta definida Comienza una seccin de identificadores (ID) Especific a donde estn colocados los Identificadores (ID) Empieza un bloque de c digo c ondicional Ejec utar si el smbolo ha sido definido Ejec utar si el smbolo no ha sido definido Incluye Ficheros fuentes adic cionales Opciones listado Dec lara una Macro Variable como local Dec lara la Definicin del Mac ro Especific a la direccin del RAM mxima Crea Mensajes definidos por el usuario Termina la Expansin del Macro Termina el Listado del Rendimiento Pone el Origen del Programa Inserta el nmero de pgina del listado

number> exitm expand extern<label>[ ,<label>] [<label>] fill <expr>, <count> global <label> [,<label>] [<name>] idata [<address>] __idlocs <expr> if <expr> ifdef <label> ifndef <label> include <<include_file>> |" <include_file>" list [<list_option>,...,<list_option>] local <label> [,<label>] <label> macro [<arg>,...,<arg>] __maxram <expr> messg "<message_text>" noexpand nolist <label> org <expr> page

Genera el cdigo de seleccin de la pgina pagesel <label> de ROM processor <proc esssor_type> radix <default_radix> [<label>] res <mem_units> <label> set <expr> space <expr> subtitle "<sub_text>" title "<title_text>" [<name>] udata [<address>] [<name>] udata_ovr [<address>] [<name>] udata_shr [<address>] #undefine <label> variable <label>[=<expr>,...,<label> [=<expr>] ] while <expr>
2/42

PROCESSOR El Tipo del Procesador fijo RADIX RES SET SPACE SUBTITLE TITLE UDATA Especific a Radix Predefinido Reserve la Memoria Defina Variable de ensamblador Inserta lneas en blanc o Especifique el Subttulo del Programa Especifique el Ttulo del Programa Empieza la sec cin de datos no inic ializados

UDATA_OVR Empieza la sec cin de datos no inic ializados superpuestos UDATA_SHR Empieza la sec cin de datos no inic ializados compartidos

#UNDEFINE Anula una Etiqueta de la Substitucin VARIABLE WHILE Dec lara un smbolo como variable Realiza el bucle Mientras la Condicin es Verdadera

wanadoo.es//directivas_mpasm.htm

09/06/2011

Directivas de MPASM

Para mas informacin ver MPASM, MPLINK, MPLIB User's Guide o informacin actualizada en Mic roc hip.

Detalles de las directivas


En las siguientes lneas nos dedic aremos a la descripcin detallada del directivas utilizadas por MPASM. Cada definicin mostrar: Sintaxis Desc ripc in Ejemplo

__BADRAM
Identifica las posic iones de RAM invalidas

Sintaxis:
__BADRAM <el expr>[-<expr>] [, <el expr>[-<expr>]] Descripcin: Las directivas __MAXRAM y _BADRAM juntas acc eden a los flag de los registros no implementados. __BADRAM define las posic iones de las direcciones RAM invlidas. __BADRAM est disea para el uso con la directiva __MAXRAM. La directiva __BADRAM debe ir precedida de una directiva __MAXRAM. Cada <expr> debe ser al menos igual al valor especificado por __MAXRAM. Una vez se utiliza la direc tiva __MAXRAM, se habilitan las direcciones de RAM y se inhabilitan posiciones de RAM utilizando la directiva __BADRAM.

Ejemplo:
; definicin DE RAM para el PIC16F84 __MAXRAM H'CF' __BADRAM H'07',H50'-H'7F',H87'

Ver
__MAXRAM Volver a la tabla de directivas

wanadoo.es//directivas_mpasm.htm

3/42

09/06/2011

Directivas de MPASM

BANKISEL
Genera el cdigo que selecc iona el banco de memoria RAM para el direc cionamiento Indirecto.

Sintaxis:
bankisel <etiqueta> Descripcin: Se usa para generar el arc hivo objeto. Esta direc tiva es una instruccin para el linkador para que seleccione el banco de memoria adecuado para acceder direc tamente a la <etiqueta> especificada. La <etiqueta> debe ser especific ada sola. No puede realizarse ninguna operacin delante de la <etiqueta>. La <etiqueta> debe estar definida previamente. El linkador generar el banco apropiado que selec ciona el cdigo. En esencia para los dispositivos de 14 bits, la instrucc in genera el set/clear del bit apropiado en el IRP de registro de STATUS. Para los dispositivos de 16-bits, MOVLB o MOVLR son las que lo generan. Si el usuario puede especific ar la direcc in indirecta c ompletamente sin estas instrucciones, no se genera ningn c digo.

Ejemplo:
movlw movwf bankisel ... movwf Var1 FSR Var1 INDF

Ver
PAGESEL BANKSEL Volver a la tabla de directivas

BANKSEL
Genera el cdigo que selecc iona el cdigo de memoria RAM

Sintaxis:
banksel <etiqueta> Descripcin: Se utiliza para generar un arc hivo objeto. Esta direc tiva da instruccin al linkador para que
wanadoo.es//directivas_mpasm.htm 4/42

09/06/2011

Directivas de MPASM

selec cione el banc o de memoria adecuado para acceer direc tamente a la etiqueta. La etiqueta debe especificarse sola. Ninguna operac in puede realizarse delante de la etiqueta. La etiqueta debe haberse definido previamente. El linkador genera el banc o apropiado que selecciona el cdigo . En esencia para los dispositivos de 12 bits, las instrucc iones de set/clear se generan los bit apropiados en el FSR. Para los dispositivos de 14 bits, se generan las instrucc iones de set/clear de los bit del registro de STATUS. Para los dispositivos de 16 bits, se generan instruc ciones MOVLB o MOVLR. Para dispositivos de 16 bits reforzados se generan MOVLB. Si el dispositivo c ontiene slo un banc o RAM, no se genera ninguna instruccin.

Ejemplo:
banksel movwf Var1 Var1

Ver
BANKISEL PAGESEL Volver a la tabla de directivas

CBLOCK
Define un bloque de constantes. Sintaxis: cblock [<expresin>] <etiqueta>[:<increment>][,<etiqueta>[:<increment>]]endc Descripcin: Define una lista de c onstantes definidas (por un nombre). A c ada <label> se le asigna un valor inmediatamente superior que al anterior <label>. El propsito de esta direc tiva es asignar direcc iones a muchas etiquetas. La lista finaliza cuando se encuentra la direc tiva ENDC. <expr> indica el valor de arranque para el primer nombre del bloque de etiquetas. Si no se asigna en la expresin, la primera variable recibir un valor superior al de la variable final del CBLOCK anterior. Si el primer CBLOCK en el archivo fuente no tiene ningn <expresin>, los valores asignados empiezan con el cero. Si <increment> se especifica, entonc es a la prxima <etiqueta> se le asigna el valor de <increment> superior a la anterior <etiqueta>. Pueden darse los nombres mltiples en una lnea, separada por las comas.

Ejemplo:
cblock 0x20 name_1, name_2
wanadoo.es//directivas_mpasm.htm

;a la primera variable se le asigna el valor 20 ;name_2, se le asigna el valor 21


5/42

09/06/2011

Directivas de MPASM

name_3, name_4 endc

;name_4 se le asigna 23.

cblock 0x30 TwoByteVar: 0, TwoByteHigh, TwoByteLow Queue: QUEUE-SIZE QueueHeadm QueueTail Double1:2, Double2:2 endc

Ver
ENDC Volver a la tabla de directivas

CODE
Empieza la sec cin de cdigo de un Archivo Objeto

Sintaxis:
[<etiqueta>] CODE [<direccin de ROM>] Descripcin: Se usa para generar un archivo del objeto. Declara el principio de una secc in de cdigo del programa. Si <etiqueta> no se espec ifica, la seccin se nombra .code, empezando en la direcc in siguiente a la direccin espec ificada o se asignar al eslabn tiempo si ninguna direcc in se espec ifica.

Ejemplo:
RESET code H'01FF' goto START

Ver
EXTERN GLOBAL IDATA UDATA UDATA_ACS UDATA_OVR UDATA_SHR Nota: Dos secciones del mismo archivo fuente no pueden tener el mismo nombre. Volver a la tabla de directivas

__CONFIG
wanadoo.es//directivas_mpasm.htm 6/42

09/06/2011

Directivas de MPASM

Configurac in de los bit de c onfiguracin de procesador Sintaxis: __config <expr> OR __config <addr>, <expr> Descripcin: Fija los bit de configurac in del proc esador c on el valor descrito por la expresin Para los dispositivos PIC18CXX, la direccin de la palabra de configurac in tambin debe ser especificada por <addr> . Ver en el manual de referenc ia de los mic roc ontroladores la desc ripc in de los bit de la palabra de configuracin para c ada mic roc ontrolador. Antes de utilizar esta direc tiva, debe dec lararse mediante la directiva LIST o la directiva PROCESSOR. Si esta directiva se usa en la familia de los PIC17CXX, el arc hivo Hexadec imal debe ponerse en formato INHX32 utilizando la direc tiva LIST .

Ejemplo:
LIST P=12ce519 ,n=66 INCLUDE __CONFIG CP_OFF & WDT_ON & MCLRE_ON & IntRC_OSC La primera lnea de directivas indica que el nmero de lneas que se incluir en el listado de una pgina. La segunda lnea indica al compilador el fichero que deber inc luir en la compilac in, en este caso es el arc hivo que incluye las declarac iones para el microcontrolador PIC12C519. En la tercera lnea apararen los bit para la configurac in del modo de funcionamiento. Al compilar el programa estos bits se c onfiguran por defecto y se incluyen en el archivo hexadec imal que se genera, el c ual se traslada al microcontrolador en la fase de grabac in. Se puede deducir fc ilmente que con esta lnea la configuracin queda de la siguiente manera: no se protege el c digo, se habilita el WDT, el MCR ser externo y el tipo de oscilador ser interno por RC .

Ver
__IDLOCS LIST PROCESSOR Volver a la tabla de directivas

CONSTANT
Declara los smbolos de las c onstantes

Sintaxis:
constant <label>=<expr> [...,<label>=<expr>]
wanadoo.es//directivas_mpasm.htm 7/42

09/06/2011

Directivas de MPASM

Descripcin: Crea los smbolos para el uso de expresiones. No pueden ponerse a cero las constantes una vez se ha inicializado, y la expresin deber ser totalmente admitida en el momento de la asignacin. Esta es la diferencia principal entre las c onstantes (CONSTANT) y aquellas que se definen como variables (VARIABLE) o aquellas creadas por la direc tiva SET. Por otra parte pueden usarse constantes y variables intercambiables en las expresiones.

Ejemplo:
variable RecLength=64 ;Poner por defecto ;RecLength constant BufLength=512 ;Init BufLength . ;RecLength may . ;be reset later . ;in RecLength=128 . ; constant MaxMem=RecLength+BufLength ;CalcMaxMem

Ver
SET VARIABLE Volver a la tabla de directivas

DATA
Crea Datos numricos y de Texto

Sintaxis:
[<etiqueta>] data <expr>,[,<expr>,...,<expr>] [<etiqueta>] data "<text_string>"[,"<text_string>",...] Descripcin: Esta directiva inicializa una o ms palabras de memoria de programa con los datos de la expresin. Estos datos pueden ser en forma de c onstantes, reubic able o etiquetas externas, o expresiones formadas por cualquiera de las anteriores. Los datos tambin pueden ser un carc ter ASCII, <text_string> , entre c omillas simples para caracteres o entre dobles c omillas para c adenas de carac teres.

Ejemplo:
data data reloc_label+10 1,2,ext_label ;constante ;constante, externa
8/42

wanadoo.es//directivas_mpasm.htm

09/06/2011

Directivas de MPASM

data data data

"hola 1,2,3" 'N' start_of_program

;cadena de caracteres ;carcter sencillo ;etiqueta recolocable

Ver
DW DB DE DT IDATA Volver a la tabla de directivas

DB
Declara datos de un Byte

Sintaxis:
[<etiqueta>] db <expr>[,<expr>,...,<expr>] Descripcin: Reserva memoria de programa para palabras de tamao 8 bits. Las expresiones mltiples continan llenando los bytes de memoria de forma consecutiva hasta el final de las expresiones. Si el nmero de datos de las expresiones es impar, el ltimo byte ser el cero. Al generar un archivo del objeto, esta directiva tambin puede usarse para declarar los valores de los datos de inic ializacin. Para mas informacin mirar la directiva IDATA.

Ejemplo:
DB 't', 0x0f, 'e', 0x0f, 's' , 0x0f, 't', '\n'

Ver
DATA DW DE DT IDATA Volver a la tabla de directivas

DE
Define datos en la EPROM

Sintaxis:
[<etiqueta>] de <expr>[,<expr>,...,<expr>]
wanadoo.es//directivas_mpasm.htm 9/42

09/06/2011

Directivas de MPASM

Descripcin: Reservan palabras de memoria de 8 bits. Cada expresin reserva un valor de 8 bits. Los bits superiores de la palabra de programa son cero. Carda carc ter de un string se guarda en un posic in separada.

Ejemplo:
org H'2100' de "ProgTOB, v1.0" ,0 El resultado en la memoria EEPROM es el siguiente:

Ver
DATA DB DT DW Volver a la tabla de directivas

#DEFINE
Define una etiqueta de sustitucin de texto

Sintaxis:
#define <name> [<string>] Descripcin: Esta directiva define una cadena de substitucin de texto. Dondequiera que <name> se encuentre en el ensamblador, se sustituir por <string>. Usando la directiva sin <string> genera una definicin de tipo <name> para ser utilizada internamente por la directiva IFDEF. Esta directiva emula el ANSI 'C' standard como #define. No est disponible definir smbolos
wanadoo.es//directivas_mpasm.htm 10/42

09/06/2011

Directivas de MPASM

con este mtodo utilizando MPASM. Ejemplo 1: #define banco0 bcf status,5 #define banco1 bsf status,5 Siempre que a lo largo del programa se escriba banco0, se selec ciona el banc o 0 de memoria. De igual modo, siempre que se esc riba banco1, se selec ciona el banc o 1 de memoria. Ejemplo 2: #define longitud 20 #define control 0x19,7 #define posicion (X,Y,Z) (Y-(2 * Z+X)) . . . test_label dw posicin (1, longitud,512) bsf control ;set bit 7 de la posicin 19 RAM

Ver
IFDEF IFNDEF #UNDEFINE Volver a la tabla de directivas

DT
Define Tabla

Sintaxis:
[<etiqueta>] dt <expr> [, <expre>, .., <expre>] Descripcin: Esta genera, durante la fase de ensamblado, tantas instrucc iones retlw como caracteres u oc tetos la acompaen.

Ejemplo:
dt "mensaje",0x10,.15 Esta directiva genera las instrucciones: rtlw 0x6D (m en ASCII) rtlw 0x65 (e en ASCII) rtlw 0x6E (n en ASCII) rtlw 0x73 (s en ASCII) rtlw 0x61 (a en ASCII) rtlw 0x6A (j en ASCII)
wanadoo.es//directivas_mpasm.htm 11/42

09/06/2011

Directivas de MPASM

rtlw 0x65 (e en ASCII) rtlw 0x10 rtlw 0xf (15 en decimal)

Ver
DATA DB DE DW Volver a la tabla de directivas

DW
Define datos de un Word

Sintaxis:
[<etiqueta>] dw <expr> [, <expre>, .., <expre>] Descripcin: Reserva memoria de programa para los datos, inicializando estas posiciones c on valores especficos. Se guardan los valores en posic iones de memoria sucesivas y se incrementa en uno el c ontador. Las expresiones pueden ser literales y se guardan c omo se ha desc rito en la directiva DATA. Al generar el archivo objeto, esta direc tiva tambin puede usarse para dec larar los valores de los datos inic ializados. Ver la direc tiva IDATA para ms informac in.

Ejemplo:
dw 39, "diagnostic 39", (d_list*2+d_offset) dw diagbase-1

Ver
DATA DB IDATA Volver a la tabla de directivas

ELSE
Empieza el bloque alternativo de un IF

Sintaxis:
wanadoo.es//directivas_mpasm.htm 12/42

09/06/2011

Directivas de MPASM

else Descripcin: Usada junto con la direc tiva IF para proporcionar un camino alternativo de ensamblado si al evaluar la c ondicin es falso. Else puede usarse dentro de un bloque de programa o en una macro.

Ejemplo:
SPEED macro rate if rate < 50 dw lento else dw rapido endif

endm

Ver
IF ENDIF Volver a la tabla de directivas

END
Fin de bloque de programa

Sintaxis:
end Descripcin: Esta direc tiva indica el final del programa y es obligatoria. Si se detec ta el fin de fic hero y no se ha encontrado la directiva ENDse produce error. Todas las lneas posteriores a la lnea en la que se encuentra esta direc tiva, se ignoran y no se ensamblan.

Ejemplo:
Inicio bsf clrf bcf movlw movwf end STATUS,RP0 ; Comienza el programa ejecutable PORTB STATUS,RP0 b'00000010' PORTB

Volver a la tabla de directivas


wanadoo.es//directivas_mpasm.htm 13/42

09/06/2011

Directivas de MPASM

ENDC
Termina un bloque automtic o de c onstantes

Sintaxis:
endc Descripcin: ENDCse escribe al final de una lista de constantes CBLOCK. Debe escribirse para indicar el fin de la lista.

Ejemplo:
cblock 0x20 name_1, name_2 name_3, name_4 ;a la primera variable se le asigna el valor 20 ;name_2 se le asigna el valor 21 ;name_4 se le asigna 23.

endc

Ver
CBLOCK Volver a la tabla de directivas

ENDIF
Fin de bloque de condic iones de ensamblado

Sintaxis:
endif Descripcin: Esta direc tiva marca el extremo de un bloque c ondicional de ensamblado. ENDIF puede usarse dentro de un bloque de programa o en una macro.

Ver
IF ELSE

wanadoo.es//directivas_mpasm.htm

14/42

09/06/2011

Directivas de MPASM

Volver a la tabla de directivas

ENDM
Fin de la definicin de una macro

Sintaxis:
endm Descripcin: Termina una definicin del mac ro que comienza con la directiva MACRO.

Ejemplo:
Led1 macro ;Enciende el LED1 del conectado al PortB bsf STATUS,RP0 clrf PORTB bcf STATUS,RP0 movlw b'00000010' movwf PORTB endm

Ver
MACRO EXITM Volver a la tabla de directivas

ENDW
Fin de bucle de espera

Sintaxis:
endw Descripcin: ENDW Finaliza un tiempo de espera. Cuando se c umple la condicin espec ificada por la directiva WHILE , el cdigo fuente entre la directiva WHILE y la directiva ENDW se extender repetidamente en la fuente del ensamblador y el cdigo fuente. Esta direc tiva puede usarte dentro de un bloque de programa o en una macro.

wanadoo.es//directivas_mpasm.htm

15/42

09/06/2011

Directivas de MPASM

Ejemplo:
test_mac macro count variable i i = 0 while i < count movlw i i += 1 endw endm start test_mac 5 end

Ver
WHILE Volver a la tabla de directivas

EQU
Define una constante para el ensamblador

Sintaxis:
<etiqueta> equ <espr> Descripcin: Esta directiva permite asignar el valor de <expr> a un identific ador <etiqueta>. El resultado puede ser una expresin compuesta por otros identific adores y tan compleja como se desee. Generalmente, el identificador es un nombre que describe el valor de manera ms significativa para el programador. Suele utilizarse para definir constantes y direc ciones de memoria. As, es ms fcil recordar SEG_POR_HORA que rec ordar el valor 3600 o en el c aso de una direcc in de memoria TRISA que 0x05.

Ejemplo:
cuatro EQU 4; asigna el valor del nmero 4 a la etiqueta 4

Ver
SET
wanadoo.es//directivas_mpasm.htm 16/42

09/06/2011

Directivas de MPASM

Volver a la tabla de directivas

ERROR
Emite un mensaje de Error

Sintaxis:
error "<text_string>" Descripcin: <text_string> imprime en un formato idntico a c ualquier error de MPASM El mensaje <text_string> puede tener un total de oc henta c aracteres.

Ejemplo:
error_checking macro arg1 if >= 55 ; Si el argumento est fuera de rango error "error_checking-01 el argumento est fuera de rango" endif endm

Ver
MESSG Volver a la tabla de directivas

ERRORLEVEL
Sita el nivel de error

Sintaxis:
errorlevel {0|1|2|+<msgnum>|-<msgnum>} [, ...] Descripcin: Tipos de mensajes que estn impreso en el archivo listable y el archivo de errores. Poner 0 Efecto mensajes, advertencias, e impresin de errores
17/42

wanadoo.es//directivas_mpasm.htm

09/06/2011

Directivas de MPASM

1 2

Se imprimen advertencias y errores Imprime errores

-<msgnum> Inhibe impresin del mensaje <msgnum> +<msgnum> Habilita impresin del mensaje <msgnum> Los valores para <msgnum> pueden verse en MPASM, MPLINK, MPLIB Users Guide. Los mensajes de Error no pueden ser desac tivados. La opcin de 0, 1, o 2 anula el mensaje individual que desactiva o habilitando.

Ejemplo:
errorlevel 1, -202

Ver
LIST Volver a la tabla de directivas

EXITM
Salida de una Mac ro

Sintaxis:
exitm Descripcin: Fuerza el retorno inmediato de la expansin de la macro durante el ensamblado. El efec to es igual que encontrar una directiva ENDM.

Ejemplo:
test macro filereg if filereg == 1 ;check for valid file exitm else error "bad file assignment" endif endm

Ver
wanadoo.es//directivas_mpasm.htm 18/42

09/06/2011

Directivas de MPASM

MACRO ENDM Volver a la tabla de directivas

EXPAND
Expande una lista de Mac ro

Sintaxis:
expand Descripcin: Extiende todas las macros en el archivo de listado. Esta directiva es aproximadamente equivalente al comando de la opc in de lnea /m MPASM, pero puede desac tivarse por la ac cin de un NOEXPAND.

Ver
MACRO NOEXPAND Volver a la tabla de directivas

EXTERN
Declare una etiqueta definida c omo externa

Sintaxis:
extern <etiqueta> [,<etiqueta>...] Descripcin: Se utiliza para generar un archivo del objeto. Declara nombres del smbolo que pueden ser usado en el mdulo actual pero se define como global en un mdulo diferente. La dec laracin de EXTERNdebe ser incluida antes de <etiqueta>. Debe expecificarse al menos una etiqueta en la misma lnea. Si <etiqueta> se define en el el mdulo actual, MPASM generar un error de la etiqueta doble.

Ejemplo:
extern ... call Function Function
19/42

wanadoo.es//directivas_mpasm.htm

09/06/2011

Directivas de MPASM

Volver a la tabla de directivas

FILL
Llena la memoria

Sintaxis:
[<label>] fill (<expr>,<count>) Descripcin: Genera <count> sucesos de palabras de programa o byte (en los dispositivos PIC18CXX ). <expr> puede ser una instrucc in en ensamblador.

Ejemplo:
fill 0x1009, 5 ; Llenar con una constante fill (GOTO RESET_VECTOR),NEXT_BLOCK-$

Ver
DW ORG DATA Volver a la tabla de directivas

GLOBAL
Exportac in una Etiqueta

Sintaxis:
global <etiqueta> [,<etiqueta>...] Descripcin: Para el uso al generar un archivo del objeto. Declara nombres del smbolo que son definidos en el mdulo actual y debe estar disponible en otros mdulos. La declaracin GLOBAL debe anteceder a una <etiqueta>. Por lo menos una etiqueta debe especificarse en la lnea.

Ejemplo:
wanadoo.es//directivas_mpasm.htm 20/42

09/06/2011

Directivas de MPASM

udata Var1 res 1 Var2 res 1 global Var1, Var2 code AddThree global AddThree addlw 3 return Volver a la tabla de directivas

IDATA
Comienza una secc in de identificadores en el archivo objeto

Sintaxis:
[<label>] idata [<RAM address>] Descripcin: Para generar un archivo objeto. Declara el inicio de una secc in de inic icaliazc in de datos. Si <label> no se especifica, la sec cin se nombra .idata. La primera direccin es la que se especifica, sino se indica, se asignar en el momento de linkar. Ningn c digo puede generarse en este segmento del programa. El montador generar una entrada de la tabla parec er-despierta para cada byte especificado en la seccin IDATA . El usuario debe linkar entonc es o debe incluir el cdigo de la inicializac in apropiado. Esta directiva no est disponible para los dispositivos de 12-bits. Pueden usarse las directivas RES, DB y DW para reservar el espacio para las variables. RES generar un valor inicial de c ero. DB inic ializar los bytes suc esivos de RAM. DW inic ializar bytes sucesivos de RAM, con el siguiente orden, en el byte-bajo / byte-alto. idata LimitL LimitH Gain Flags String dw dw dw db db 0 D'300' D'5' 0 'Hi there!'

Ver
EXTERN GLOBAL UDATA UDATA_ACS UDATA_OVR UDATA_SHR Volver a la tabla de directivas

wanadoo.es//directivas_mpasm.htm

21/42

09/06/2011

Directivas de MPASM

__IDLOCS
El Procesador fija las posiciones de ID

Sintaxis:
__idlocs <expr> or __idlocs <expr1>, <expr2> Descripcin: Para los PIC12CXX, PIC14000, y PIC16CXX, __IDLOCS pone los cuatro loc alizadores ID en hexadec imal valorando la <expr>. Para los dispositivos PIC18CXX, __IDLOCS pone dos bytes en el dispositivo ID <expr1> el valor del hexadecimal de <expr2>. Esta directiva no es vlido para la familia de PIC17CXX. Por ejemplo, si <expr> evala 1AF, primero (la direc cin ms baja) del localizador ID es el cero, el segundo es el uno, el tercero es el diez, y el cuarto es quince. Antes de usar esta directiva, debe declararse el procesador a travs de la lnea de comandos con la directiva LIST, o la directiva PROCESSOR.

Ejemplo:
__idlocs H'1234'

Ver
LIST PROCESSOR __CONFIG Volver a la tabla de directivas

IF
Comienza un bloque de cdigo c ondicional

Sintaxis:
if <expr> Descripcin: Empieza ejecucin de un bloque condicional de ensamblado. Si <expr> es verdadera, el cdigo inmediato a IF se ensamblara. En caso contrario, las instruc ciones siguientes se saltan hata encontrar una directiva ELSE o una directiva ENDIF. La evaluacin de una expresin que sea cero se c onsidera desde el punto de vista de la
wanadoo.es//directivas_mpasm.htm 22/42

09/06/2011

Directivas de MPASM

lgica FALSA. La evaluac in de una expresin que de c ualquier valor distinto de dero se considera como VERDADERA. las direc tivas IF (SI) y WHILE (MIENTRAS) operan con el valor lgico de una expresin. Un expresin verdadera (TRUE) garantiza devolver un valor distinto de cero, y falsa (FALSE) el valor cero.

Ejemplo:
if version == 100 ;check current version movlw 0x0a movwf io_1 else movlw 0x01a movwf io_2 endif

Ver
ELSE ENDIF Volver a la tabla de directivas

IFDEF
Ejecuta si el smbolo ha sido definido

Sintaxis:
ifdef "<label>" Descripcin: Si <label> se ha definido previamente, normalmente utilizando la directiva #DEFINE o poniendo el valor en el comando de lnea del MPASM, se toma el c amino condic ional. El ensamblado c ontinuar hasta encontrar un ELSE emparejado o una direc tiva ENDIF.

Ejemplo:
;******************************* ;doble microcontrolador ;******************************** #DEFINE PIC674 ifdef PIC674 LIST p=12ce674 INCLUDE else LIST p=12ce519
wanadoo.es//directivas_mpasm.htm 23/42

09/06/2011

Directivas de MPASM

INCLUDE endif ifdef PIC674 ;Si est declarada PIC674, el reloj ser externo __CONFIG CP_OFF & WDT_OFF & MCLRE_OFF & EXTER_COSC_NOCLKOUT & HSOSC else __CONFIG CP_OFF & WDT_OFF & MCLRE_OFF & IntRC_OSC endif Si se pine un ";" delante de #DEFINE PIC674, se compila para el mic roc ontrolador PIC12CE519, si se quita el ";" lo hace para el PIC674. Si el mic roc ontrolador que se usa es el 674, el oscilador que se utiliza es el externo y sin habilitar la salida de reloj (CLKOUT) mientras que si se utiliza el 519, el oscilador ser interno por RC. En la fase de ensamblado se comprobar si est declarada la variable. Si es cierta, se ejecutar la primera lnea de configurac in y si no lo es, se ejecutar la que hay despus de ELSE.

Ver
#DEFINE ELSE ENDIF IFNDEF #UNDEFINE Volver a la tabla de directivas

IFNDEF
Ejecuta si el smbolo no ha sido definido

Sintaxis:
ifndef "<label>" Descripcin: Si <label> no se ha definido previamente, o se ha utilizando la direc tiva #UNDEFINE , entonc es el c digo que hay a continuacin de la directiva ser ensamblado. Se seguir ensamblando hasta enc ontrar una directiva ELSE emparejada o encontrar una directiva ENDIF.

Ejemplo:
;******************************* ;doble microcontrolador ;******************************* #DEFINE PIC674 ifndef PIC674 LIST p=12ce519 INCLUDE else LIST p=12ce674 INCLUDE
wanadoo.es//directivas_mpasm.htm 24/42

09/06/2011

Directivas de MPASM

endif ifndef PIC674 ;Si est declarada PIC674, el reloj ser externo __CONFIG CP_OFF & WDT_OFF & MCLRE_OFF & IntRC_OSC else __CONFIG CP_OFF & WDT_OFF & MCLRE_OFF & EXTER_COSC_NOCLKOUT & HSOSC endif Si se pine un ";" delante de #DEFINE PIC674, se compila para el mic roc ontrolador PIC12CE519, si se quita el ";" lo hace para el PIC674. Si el mic roc ontrolador que se usa es el 674, el oscilador que se utiliza es el externo y sin habilitar la salida de reloj (CLKOUT) mientras que si se utiliza el 519, el oscilador ser interno por RC. En la fase de ensamblado se comprobar si est declarada la variable. Si es cierta, se ejecutar la primera lnea de configurac in y si no lo es, se ejecutar la que hay despus de ELSE.

Ver
#DEFINEELSEENDIF IFNDEF #UNDEFINE Volver a la tabla de directivas

INCLUDE
Incluye Fichero fuentes adicionales

Sintaxis:
include <<include_file>> include "<include_file>" Descripcin: El archivo especificado se lee en cdigo fuente. El efec to es igual que si el texto entero del archivo inc lude se pusiera aqu. Al ensamblar el cdigo fuente se aadir el archivo incluido. Se permiten seis niveles de anidamiento. El <include_file> puede escribirse entre comillas o entre los smbolos de mayor que y menor que (< >). Si se especifica totalmente el c amino del fic hero inc lude, slo ese camino se investigar. Si no se indic a c amino, el orden de la bsqueda es: el directorio activo ac tual, el direc torio de archivo de fuente, el directorio ejecutable de MPASM.

Ejemplo:
include ;define el archivo donde estn definidos todos los ;registros del PIC16F84 include "p16F84.inc" ;tambin se puede definir de esta forma include "c:\sys\sysdefs.inc" ;define sysdefs.inc con su camino include ;define regs.h Volver a la tabla de directivas
wanadoo.es//directivas_mpasm.htm 25/42

09/06/2011

Directivas de MPASM

LIST
Opc iones de Listado

Sintaxis:
list [<list_option>, ..., <list_option>] Descripcin: Se admite solo en una lnea , la direc tiva LIST tiene el efecto sobre el listado de salida. Por otra parte, uno de lo siguiente opciones pueden proporcionarse controlando la estruc tura del proceso de ensamblado o el archivo listado: Opcin b=nnn c =nnn f= <format> Free Fixed mm=on/off n=nnn P=<tipe> r=<radix> st=ON/OFF t=ON/OFF w=0|1|2 x=ON/OFF Por defecto 8 132 INHX8M FIXED FIXED On 60 Ningn tipo hex On Off 0 On Descripcin Espacios de tabulacin Fija la anc hura de las columnas Fija el fichero hexadec imal de salida . <format> puede ser INHX32, INHX8M, o INHX8S. Usa el analizador de formato libre. Suministra la compatibilidad hacia atrs Usa el analizador de formato fijo Imprime el mapa de memoria en un fic hero tipo listado. Fija las lneas por pgina. Fija el tipo de procesador; por ejemplo , PIC16F84 Pone por defecto el RADIX: hex, dec, oct Imprime la tabla de smbolos en un fichero tipo listado Corta las lneas de listado (oculta ) Fija el nivel de mensaje. Ver ERRORLEVEL (nivel de error) Activa o desactiva la expansin de macro

Nota: Todas las opc iones LIST estn definidas c omo nmero decimales

Ejemplo:
list p=17c42, f=INHX32, r=DEC

wanadoo.es//directivas_mpasm.htm

26/42

09/06/2011

Directivas de MPASM

Ver
NOTLIS PROCESSOR RADIX ERRORLAVEL EXPAND NOEXPAND Volver a la tabla de directivas

LOCAL
Declara la variable de la macro c omo loc al

Sintaxis:
Local <label>, <label> Descripcin: Dec lara que el elemento de datos especific ado se c onsidera en el c ontexto local de la macro. <label> puede ser idntic o a otra etiqueta dec larada fuera de la definicin de la macro; no habr ningn conflicto entre las dos. Si la mac ro es llamada recursivamente, cada llamada tendr su propia copia local.

Ejemplo:
. . len equ size equ test macro local len label len endm

10 20

;versin global ;Comprobar que una variable local ;puede crearse ahora y modificarse label size len len-20 ;local len y label ;modifica local len ;reserva buffer ; ;fin de la macro

size len, set res set

Ver
MACRO ENDM Volver a la tabla de directivas

MACRO
Declara la definicin de macro
wanadoo.es//directivas_mpasm.htm 27/42

09/06/2011

Directivas de MPASM

Sintaxis:
<label> macro [<arg>, ..., <arg>] Descripcin: Una macro define un c onjunto de instrucc iones a las que se asigna un nombre. Posteriormente, el programa fuente del usuario puede inc luir el nombre de una mac ro y todas las instrucciones que la componen quedan insertadas en el momento de realizar el ensamblado, formando parte del programa.

Ejemplo:
La estructura de la macro es la siguiente: Nombre_macro macro Instruccin_1 Instruccin_2 . . Instruccin_n endm Donde: Nombre_macro: indic a el nombre de la macro que posteriormente se emplear en el programa fuente para inc luir todas las instrucc iones que estn definidas bajo este nombre. Las directivas MACRO y ENDMACRO forman el cuerpo dentro del c ual estn incluidas todas las instrucciones deseadas. Cada vez que se emplea Nombre_macro en el programa fuente, implica insertar todas las instrucciones que c onlleve dicho nombre en el programa

Ver
ENDM LOCAL IF ELSEENDIF EXITM Volver a la tabla de directivas

__MAXRAM
Define la Posicin de RAM mayor

Sintaxis:
__maxram <expr> Descripcin:
wanadoo.es//directivas_mpasm.htm 28/42

09/06/2011

Directivas de MPASM

Las directivas __MAXRAM y __BADRAM dan juntas ac cesos a los flag de registro no implementado. __MAXRAM define el valor mximo absoluto vlido de la memoria RAM e inicializa las direcc iones del mapa de memoria a utilizar, el valor debe ser siempre superior a la mxima direcc in del banc o 0 y menor de 1000h. Este directiva esta diseada para usarla junto c on la directiva __BADRAM para proteger ciertas direcc iones de memoria. __MAXRAM puede usarse ms de una vez en un archivo de la fuente. Cada uso redefine la direcc in de memoria, se debe de tener en cuenta que c ada vez que esto oc urre, se borra el contenido de la memoria.

Ejemplo:
;definicin DE RAM para el PIC16F84 __MAXRAM H'CF' __ BADRAM H'07',H50'-H'7F',H87' movwf movwf H'07' H'87' ;Genera un warning de direccin de RAM no valida ;Genera un warning de direccin de RAM no valida

Ver
__BADRAM Volver a la tabla de directivas

MESSG
Crea mensajes definidos por el usuario

Sintaxis:
messg "<message_text>" Descripcin: Genera un mensaje informativo a ser imprimido el archivo listable. El texto del mensaje puede tener hasta 80 c arcteres. Emitiendo una direc tiva MESSG no pone el c digo de retorno de error.

Ejemplo:
mssg_macro macro
wanadoo.es//directivas_mpasm.htm 29/42

09/06/2011

Directivas de MPASM

messg "mssg_macro-001 llamada sin el argumento" endm

Ver
ERROR Volver a la tabla de directivas

NOEXPAND
Termina la expansin de la Mac ro

Sintaxis:
noexpand Descripcin: Desactiva la expansin de la macro en el archivo de listado.

Ver
EXPAND Volver a la tabla de directivas

NOLIST
Desactiva el listado de salida

Sintaxis:
nolist Descripcin: Desactiva el archivo del listado de salida

Ver
LIST Volver a la tabla de directivas
wanadoo.es//directivas_mpasm.htm 30/42

09/06/2011

Directivas de MPASM

ORG
Origen de las instruc ciones del programa

Sintaxis:
[<label>] org <expr> Descripcin: El origen del programa c omienza la direcc in indicada en la <expr> de la directiva. Si se especifica una <etiqueta> se le da el valor de la <expr>. Si no hay ningn ORG especificado, la generacin del cdigo comienza en la direcc in cero.

Ejemplo:
int_1 org 0x20 ;Vector 20 va aqu org int_1+0x10 ;Vector 20 va aqu

int_2

Ver
RES FILL Volver a la tabla de directivas

PAGE
Inserta el nmero de pgina en el listado

Sintaxis:
page Descripcin: Inserta el nmero de pgina en el listado del programa

Ver
LIST TITLE SUBTITLE
wanadoo.es//directivas_mpasm.htm 31/42

09/06/2011

Directivas de MPASM

Volver a la tabla de directivas

PAGESEL
Genera pgina que selecciona el cdigo

Sintaxis:
Pagesel <label> Descripcin: Para el uso general de un archivo objeto. Al linkar una instrucc in para generar la pgina que selecc iona el c digo para poner los bits de la pgina en la pgina que c ontiene las etiquetas designadas .Una nica <etiqueta> debe especific arse. Ninguna operac in puede realizarse delante de la <etiqueta>. La <etiqueta> debe haberse definido previamente. El linkador generar la pgina apropiada que selecciona el cdigo. Para los micros de 12-bits, las instrucciones de bit set/clear apropiadas en el ESTADO registran el estado generado. Para los dispositivos de 14-bits y los de 16-bits, MOVLW y MOVWF generarn las instrucc iones paramodific ar el PCLATH. Si el dispositivo contiene slo una pgina de memoria del programa, ningn cdigo se generar. Para los dispositivos de PIC18CXX, este orden no har nada.

Ejemplo:
Pagesel GotoDest goto GotoDest .... pagesel CallDest call CallDest

Ver
BANKSEL BANKISEL Volver a la tabla de directivas

< name="PROCESSOR">PROCESSOR
Fija el tipo de proc esador

Sintaxis:
processor <processor_type>
wanadoo.es//directivas_mpasm.htm 32/42

09/06/2011

Directivas de MPASM

Descripcin: Fija el tipo de microcontrolador utilizado <processor_type>.

Ejemplo:
processor 16F84

Ver
LIST Volver a la tabla de directivas

RADIX
Especific a el rango (RADIX) por defec to

Sintaxis:
radix <default_radix> Descripcin: Define el rango para las expresiones de los datos. El radix predefinido por defecto es el hexadec imal. Los valores del radix son: el hexadecimal (hex), decimal (dec), u octal (oct).

Ejemplo:
radix dec

Ver
LIST Volver a la tabla de directivas

RES
Reserva memoria

wanadoo.es//directivas_mpasm.htm

33/42

09/06/2011

Directivas de MPASM

Sintaxis:
[<label>] res <mem_units> Descripcin: Al indic ador de la posicin de memoria se le inc rementa desde la posicin actual las unidades que espec ifica <mem_units>. En el cdigo no reubicable, la <etiqueta> puede ser una direcc in de memoria de programa. En el cdigo reubic able (usando MPLINK), tambin pueden usarse RES para reservar el almacenamiento de los datos.

Ejemplo:
Buffer RES 64 ;reserva 64 palabras para almacenar

Ver
ORG FILL Volver a la tabla de directivas

SET
Define Variable en Ensamblador

Sintaxis:
<etiqueta> set <expresin> Descripcin: <etiqueta> asume el valor de la expresin de MPASM vlida especificada por <expresin>. La direc tiva SET es func ionalmente equivalente a la directiva EQU slo que los valores SET pueden ser alterado como por otra directiva SET.

Ejemplo:
area ancho largo area set set set set 0 0x12 0x14 largo * ancho

Ver
EQU
wanadoo.es//directivas_mpasm.htm 34/42

09/06/2011

Directivas de MPASM

Volver a la tabla de directivas

SUBTITLE
Especific a el subttulo del programa

Sintaxis:
subtitle "<sub_text>" Descripcin: <sub_text> es una cadena de caracteres ASCII imprimibles que se indica entre dobles comillas. Debe tener 60 caracteres o menos. Esta directiva establece el texto a ser usado en la segunda lnea de cada pgina en el arc hivo de impresin.

Ejemplo:
subtitle "seccin de diagnostico"

Ver
TITLE Volver a la tabla de directivas

SPACE
Inserta lneas en blanco

Sintaxis:
space <expr> Descripcin: Insercin el nmero de lneas en blanco en el archivo de listado indicadas en <expr>.

Ejemplo:
space 3 ;Inserta tres lneas en blanco

wanadoo.es//directivas_mpasm.htm

35/42

09/06/2011

Directivas de MPASM

Ver
LIST Volver a la tabla de directivas

TITLE
Especific a el ttulo del programa

Sintaxis:
title "<title_text>" Descripcin: <title_text> es una cadena de c aracteres ASCII imprimibles que se indic a entre dobles comillas. Debe tener 60 caracteres o menos. Esta directiva establece el texto a ser usado en la lnea inicial de cada pgina en el archivo de impresin.

Ejemplo:
title "cdigo de operacin, rev 5.0"

Ver
LIST SUBTITLE Volver a la tabla de directivas

UDATA
Empieza la sec cin de datos no inicializados en el arc hivo objeto

Sintaxis:
[<label>] udata [<RAM address>] Descripcin: Para el uso al generar el arc hivo objeto. Declara el inic io de una sec cin de datos a inic ializar . Si <label> no se espec ifica, la secc in se nombra .udata. La primera direcc in se indica con a la direc cin especificada o se asignar a c ontinuacin
wanadoo.es//directivas_mpasm.htm 36/42

09/06/2011

Directivas de MPASM

de la direc cin especific a. No se puede generar ningn cdigo en este segmento. La direc tiva RES debe utilizarse para reservar espac io para los datos. Nota: Dos secciones en el mismo arc hivo fuente no pueden tener el mismo nombre.

Ejemplo:
udata Var1 Double res 1 res 2

Ver
IDATA UDATA_OVR UDATA_SHR EXTERN GLOBAL Volver a la tabla de directivas

UDATA_OVR
Comienza la sec cin de datos no inicializados superpuestos

Sintaxis:
[<label>] udata_ovr [<RAM address>] Descripcin: Para el uso al generar un archivo del objeto. Declara el princ ipio de una seccin de los datos de inicializac in superpuestos. Si no se especifica <label>, la seccin es nombrada .udata_ovr. La direcc in de arranque se indic a al princ ipio o se asignar en momento de linkar si no se especifica ninguna direc cin. El espac io dec larado por esta seccin es overlayed para todas las otras secciones del udata_ovr del mismo nombre. Es una manera ideal de dec larar las variables temporales ya que permite que las variables mltiples sean declaradas en la misma posic in de de memoria. Ningn cdigo puede genere en este segmento. La directiva RES debe usarse para reservar el espacio para los datos.

Ejemplo:
Temps udata_ovr Temp1 res 1 Temp2 res 1 Temp3 res 1 Temps udata_ovr LongTemp1 res 2 LongTemp2 res 2

;sta ser una variable en la ;misma posicin que Temp1 y Temp2 ;sta ser una variable en la posicin ;que Temp3
37/42

wanadoo.es//directivas_mpasm.htm

09/06/2011

Directivas de MPASM

Ver
IDATA UDATA EXTERN GLOBAL UDATA_SHR Volver a la tabla de directivas

UDATA_SHR
Empieza la sec cin de datos no inicializados c ompartidos

Sintaxis:
[<label>] udata_shr [<RAM address>] Descripcin: Para el uso al generar un archivo del objeto. Declara el inicio de una seccin de los datos de uninitialized c ompartido. Si <la etiqueta> no se especific a, la sec cin es nombrada .udata_shr. La direccin de arranque se inic ializa la direc cin si no se asignar en momento del linkado cuando no se indique ninguna direccin. Esta directiva se usa para dec larar variables que se asignan en RAM que es c ompartido por todos los bancos del RAM (es decir los unbanked RAM). Ningn cdigo puede generarse en este segmento. La directiva RES debe usarse para reservar el espac io para los datos.

Ejemplo:
Temps udata_shr Temp1 res 1 Temp2 res 1 Temp3 res 1

Ver
EXTERN GLOBAL IDATA UDATA UDATA_ACS UDATA_OVR Volver a la tabla de directivas

#UNDEFINE
Anula etiqueta de sustituc in

Sintaxis:
#undefine <label>
wanadoo.es//directivas_mpasm.htm 38/42

09/06/2011

Directivas de MPASM

Descripcin: La <etiqueta> es previamente un identificador definido con la direc tiva #DEFINE. Esta debe ser una etiqueta valida para el MPASM. El identificador indicado es borrado de la tabla de smbolos.

Ejemplo:
#define length 20 . . #undefine length

Ver
#DEFINE IFDEF INCLUDE IFNDEF Volver a la tabla de directivas

VARIABLE
Declara un smbolo c omo variable

Sintaxis:
variable &t;label>[=<expr>][,<label>[=<expr>]...] Descripcin: Crea los smbolos para el uso en las expresiones de MPASM. Las variables y constantes puede intercambiarse en las expresiones. La direc tiva VARIABLE crea un smbolo que es funcionalmente equivalente a los creados por la directiva SET. La diferenc ia es que la directiva VARIABLE no requiere que los smbolos se inicialicen c uando se declaran. Note que no se pueden ac tualizar os valores de las variables dentro de un operando. Se debe utilizar lneas separadas para asignar variables, incrementos y decrementos.

Ejemplo:
variable RecLength=64 ;Poner por defecto ;RecLength constant BufLength=512 ; Init BufLength . ; RecLength may . ; be reset later . ; in RecLength=128 . ;
wanadoo.es//directivas_mpasm.htm 39/42

09/06/2011

Directivas de MPASM

constant MaxMem=RecLength+BufLength

;CalcMaxMem

Ver
CONSTANTSET Volver a la tabla de directivas

WHILE
Realiza el bucle mientras la condicin es verdadera

Sintaxis:
while <expr> endw Descripcin: Las lneas de comandos c omprendidas entre WHILE y los ENDW se ensamblan mientras el valor de la <expr> sea TRUE (verdadera). Una expresin que al ser evaluada da c ero, se considera como FALSE (falsa). Una expresin que al evaluarla es distinta de cero, se c onsidera como TRUE (verdadera). Un bucle WHILE puede c ontener un mximo de 100 lneas y repetirlo un mximo de 256 veces.

Ejemplo:
test_mac macro count variable i i = 0 while i < count movlw i i += 1 endw endm start test_mac 5 end

Ver
ENDW IF Volver a la tabla de directivas

wanadoo.es//directivas_mpasm.htm

40/42

09/06/2011

Directivas de MPASM

Operadores Aritmticos y de Procedencia


Operador $ ( ) ! ~ high low Retorna c ontador de programa Parntesis izquierdo Parntesis derecho Operador NOT (c ompleto lgico) Negacin (c omplemento a 2) Complemento Retorna byte alto Retorna byte bajo Ejemplo goto $+3 1 +(d*4) (longitud+1) * 256 If ! (a - b) -1 * longitud flags = ~flags movlw high CTR_Tabla movlw low CTR_Tabla movlw upper CTR_Tabla a =b * c a =b / c entry_len = tot_len % 16 tot_len = entry_len * 8 + 1 entry_len = (tot - 1) / 8 flags = flags << 1 flags = flags >> 1 If entry_idx >= num_entries If entry_idx > num_entries If entry_idx < num_entries If entry_idx <= num_entries If entry_idx = num_entries If entry_idx != num_entries flags = flags & ERROR_BIT flags = flags ^ ERROR_BIT flags = flags | ERROR_BIT If (len = = 511) && (b = = c) If (len = = 511) || (b = = c) entry_index = 0 entry_index += 1 entry_index -= 1
41/42

upper Retorna byte superior * / % + << >> >= > < <= == != & ^ | && || = += -= Multiplica Divisin Mdulo Suma Resta Desplazamiento a la izquierda Desplazamiento a la derecha Mayor o igual Mayor que Menor que Menor o igual Igual a No igual a Bitwise AND Bitwise Or-exclusiva Bitwise Or Funcin AND lgic a Funcin lgica OR Hac er igual a Sumar a, hac er igual Restar, hac er igual

wanadoo.es//directivas_mpasm.htm

09/06/2011

Directivas de MPASM

*= /= %= <<= >>= &= |= ^= ++ --

Multiplicar, hac er igual Dividir, hac er igual Mdulo, hacer igual Desplaza a la izquierda, hacer igual Desplaza a la derecha, hacer igual AND, hac er igual OR, hac er igual OR-Exclusiva, hacer igual inc rementar decrementar

entry_index *= entry_length entry_index /= entry_length entry_index %= 8 flags <<=3 flags >>=3 flags &=ERROR_FLAG flags |= ERROR_FLAG flags ^= ERROR_FLAG i ++ i --

Volver a la tabla de directivas


Mejora

wanadoo.es//directivas_mpasm.htm

42/42

You might also like