Вы находитесь на странице: 1из 10

Escritura y compilacin de un programa en

Assembler

Pasos
1)Se escribe la fuente y se lo almacena en un
archivo de texto con extensin .ASM . Adems
de la fuente con extensin .ASM es necesario
entregar al compilador un archivo producido
por Microchip(Mplab) con extensin .INC segn
el tipo de PIC que se est utilizando
2)Se compila la fuente, es decir, se transforma en
opcode los cdigos mnemnicos o
instrucciones.

El compilador assembler genera los


siguientes archivos:
HEX Contiene los cdigos operativos para
enviar al PIC a travs del programador.
.LST Archivo de texto el cual contiene todo el
source assembler y la correspondiente traduccin
en opcode. No se utiliza para la programacin del
PIC pero es til para verificar los procesos de
compilacin.
.ERR Contiene la lista de errores encontrados
en la compilacin y el nmero de lnea en el
interno del source assembler en la cual se
encontraron.

El ensamblador MPASM (distribuido por Microchip) soporta los


sistemas de numeracin decimal, hexadecimal, octal, binario y ASCII.
Los nemnicos que tengan una constante como operando debern
incluirla respetando la sintaxis que se indica a continuacin.
TIPO

Decimal
Hexadecimal

SINTAXIS

D<valor>

d<valor>

.<valor>

H<valor>

h<valor>

0x<valor>

<valor>H

<valor>h

Octal

O<valor>

o<valor>

Binario

B<valor>

b<valor>

ASCII
Cadena

A<carcter>

a<carcter>

<carcter>

<cadena>

Las constantes hexadecimales que empiecen por una letra deben ir


precedidas de un cero para no confundirlas con una etiqueta.
Ejemplo: movlw 0F7h

Directivas
Controlan el proceso de ensamblado del programa, pero no son parte del
mismo (tambin se conocen como pseudoinstrucciones).
Hay ms de 50 directivas reconocidas por MPASM. A continuacin se
recogen algunas de las ms habituales
END
Es la nica directiva obligatoria. Indica al ensamblador dnde debe
detener el proceso. Debe colocarse en la ltima lnea del programa.
<etiqueta> EQU <expresin>
El valor <expresin> es asignado a <etiqueta>. Estas directivas se
suelen colocar al principio del programa y habitualmente se usan
para definir constantes y direcciones de memoria.
[<etiqueta>] ORG <expresin>
Las instrucciones del cdigo fuente que siguen a esta directiva se
ensamblan a partir de la posicin indicada por <expresin>.

__CONFIG <expresin> [& <expresin> & ... & <expresin>]


Permite indicar la configuracin elegida para la grabacin del PIC.
Ejemplo: __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC
LIST P=16F877
Indica el tipo de microcontrolador utilizado.
INCLUDE <p16F877.inc> o INCLUDE p16F877.inc
Incluye en el programa un fichero donde se definen las etiquetas
con las que se nombra a los diferentes registros y sus bits. Este
fichero se encuentra en el directorio principal del programa
ensamblador. Puede usarse esta directiva para incluir cualquier
otro fichero (Ojo! El fichero de inclusin no puede terminar con
una directiva END).
DT <expr1> [, <expr2>, ... , <exprN>]
Genera una instruccin retlw por cada expresin que incluya la
directiva. Si la expresin es del tipo cadena, se generar una
instruccin retlw por cada carcter de la misma.

LIST P=16F877A
INCLUDE P16F877A.INC
OPERAND1
OPERAND2
RESULTADO
ORG0
movlw
movwf
movlw
movwf
movfw
addwf
movwf
END

EQU
EQU
EQU

0x21
0x22
0x23

;Directiva para definir listado y


microcontrolador
;Inclusin de fichero de etiquetas
;Etiquetas
;Define la posicin del operando 1
;Define la posicin del operando 2
;Define la posicin del resultado

; Indica al ensamblador la direccin de


; memoria de programa donde se
;colocar la siguiente instruccin

5
OPERAND1
2
OPERAND2
OPERAND1
OPERAND2,0
RESULTADO

;Por el Puerto B se saca en binario, el numero de veces


;que se puls la tecla que est conectada a la entrada RA4

LIST P=16F877A
INCLUDE P16F877A.INC
num

;Directiva
;Inclusin de fichero de etiquetas

equ 0xa5

CLRF STATUS
BSF STATUS,RP0
CLRF TRISB
MOVLW 0XFF
MOVWF TRISA
MOVLW 0X06
MOVWF ADCON1
CLRF STATUS
CLRF PORTB

; PORTB como salida


;PORTA como entrada
;Volvemos al banco 0

ESPERA:
BTFSS PORTA,1
CALL
INCREMENTO
GOTO ESPERA
INCREMENTO
INCF
PORTB,1
VUELVE
DECFSZ num,1
GOTO VUELVE
SOLTAR
BTFSS PORTA,1
GOTO SOLTAR
GOTO ESPERA
END

;Esperamos a que se pulse la tecla


;en cuyo caso RA4 pasa a 0 y vamos a
;subprograma de INCREMENTO
;Si se puls incrementamos PORTB

;no salimos hasta que se haya soltado


;la tecla, en ese caso RA4 pasara a 1

Вам также может понравиться