ensamblador - webnode · 2013-01-14 · directivas del ensamblador banksel se coloca en el banco de...

40
Ensamblador Archivo Fuente Ensamblador UNEXPO – Pto. Ordaz. MICROPROCESADORES Código Máquina Ensamblador

Upload: others

Post on 14-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Ensamblador

ArchivoFuente

CódigoMáquina

Ensamblador

UNEXPO – Pto. Ordaz. MICROPROCESADORES

ArchivoFuente

CódigoMáquina

Ensamblador

Page 2: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Ensamblador de la Microchip MPLAB

Programa.asm

MPASM

Programa.HEX

Archivos Fuente

Ensamblador

Archivo final .HEX

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Programa.asm

MPASM

Programa.HEX

Archivos Fuente

Ensamblador

Archivo final .HEX

Page 3: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Realizar un Proyecto con MPLAB

Programa1.asm

MPASM

Programa2.asm

MPASM

Programa1.o Programa2.o

16F877.lkr

MPLINK

Programa.HEX

Archivos Fuente

Ensamblador

Archivos ObjetoRelocalizables

Archivoslocalizador deDir.

Enlazador

Archivo final.HEX

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Programa1.asm

MPASM

Programa2.asm

MPASM

Programa1.o Programa2.o

16F877.lkr

MPLINK

Programa.HEX

Archivos Fuente

Ensamblador

Archivos ObjetoRelocalizables

Archivoslocalizador deDir.

Enlazador

Archivo final.HEX

Page 4: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Instrucciones en el EnsambladorETIQUETA NEMÓNICO U

OPERACIÓNOPERANDO COMENTARIO

PRUEBA MOVLW 0xA0 ;Se carga al registro W el;dato A0hh

COMENTARIOS : describe el significado dela instrucción para dar una ideade lo que hace el programa. Esopcional

UNEXPO – Pto. Ordaz. MICROPROCESADORES

ETIQUETA : Debe empezar en la columna 1, puede estarseguida de dos puntos (:), un espacio,una tabulación o fin de línea.

NEMÓNICO u OPERACIÓN : específica la operación arealizar, ya sea una instrucción delmicrocontrolador o una directiva delensamblador.

OPERANDO(S): proporciona la información requerida por laoperación.

Page 5: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Instrucciones en el Ensamblador

Tipo Sintaxis Ejemplo

Representación Numérica

Decimal D’<dígitos>’.<dígitos>

D’250’.250

Hexadecimal H’<díg_Hex>’0x<díg_Hex>

H’8B’0x8B

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Hexadecimal H’<díg_Hex>’0x<díg_Hex>

H’8B’0x8B

Octal O’<díg_Oct>’ O’777’Binario B’<díg_Bin>’ B’10011111’ASCII ’<Carácter>’

A’<Carácter>’’M’A’M’

Page 6: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

CBLOCKCBLOCK Define un bloque de constantes.Sintáxis.CBLOCK [<expr>]

<etiq>[:<incremento>] [,<etiq>[:<incremento>]]ENDC

Ejemplo

UNEXPO – Pto. Ordaz. MICROPROCESADORES

CBLOCK 0x20Nombre1, Nombre2 ;La primera etiqueta (Nombre1)Nombre3, Nomnre4 ;se le asignara la Dir. 20h y de allí

;Dir. Consecutivas a las otras etiq.ENDC ;El bloque de constante debe

;finalizarse con ENDC

Ejemplo

Page 7: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

CODECODE Inicia la sesión de un programa. Se utiliza para programasrelocalizables

Sintáxis[<Etiq>] CODE [<Dirección ROM>]

Ejemplo

UNEXPO – Pto. Ordaz. MICROPROCESADORES

RESET CODE H’0000’ ;La instrucción GOTO seGOTO START ;almacenara en la Dir. 0000h

Ejemplo

Page 8: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

DBDB Declara dato de un Byte

Sintáxis[<Etiq>] DB <expr> [, <expr >, …, <expr >]

Ejemplo

UNEXPO – Pto. Ordaz. MICROPROCESADORES

DB ‘p’, “Prueba”, 0x0F, 00 ;Se almacena una tabla en la;memoria de Programa en formato;de 8 bits en el orden que aparece;en la tabla

Ejemplo

Page 9: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

DEDE Declara dato de un Byte en la memoria EEPROM

Sintáxis[<Etiq>] DE <expr> [, <expr >, …, <expr >]

Ejemplo

UNEXPO – Pto. Ordaz. MICROPROCESADORES

DE 00,01,02,03,04,05 ;Se almacena una tabla en la;memoria de datos EEPROM en;formato de 8 bits en el orden que;aparece en la tabla

Ejemplo

Page 10: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

ORGORG Define el origen donde debe comenzar el Programa

Sintáxis[<Etiq>] ORG <expr>

Ejemplo

UNEXPO – Pto. Ordaz. MICROPROCESADORES

RESET ORG 0x0000movlw 01 ;Esta instrucción comienza en la diraddlw 01 ;0000h de la memora de Prog, y las

;demás se incrementa la dir

Ejemplo

Page 11: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

ENDEND Le indica al ensamblador que es el fin del programa.

SintáxisEND

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Page 12: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

EQUEQU Define una constante en el ensamblador

Sintáxis[<Etiq>] EQU <expr>

Ejemplo

UNEXPO – Pto. Ordaz. MICROPROCESADORES

STATUS EQU 0x03 ;le asigna el valor 03h a la etiqueta;STATUS

Ejemplo

Page 13: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

BANKSELBANKSEL Se coloca en el banco de la memoria RAM interna

SintáxisBANKSEL <Etiq>

Descripción: Se utiliza para generar las instrucciones quepermiten colocarse en el banco de la RAM interna de ladirección <Etiq>

UNEXPO – Pto. Ordaz. MICROPROCESADORES

NUMERO1 EQU 0x0A ;le asigna el valor 0Ah a la etiqueta;NUMERO1

BANKSEL NUMERO1 ;Genera las instrucciones para;colocarse en el Banco 1; BSF STATUS,RP0; BCF STATUS,RP1

Ejemplo

Page 14: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

EXTERNEXTERN Declara una etiqueta definida como externa.

SintaxisEXTERN <Etiq> [, <Etiq>, ...]

Descripción: Se utiliza para generar archivos relocalizables, lasetiquetas definidas como externas pueden ser llamadas desdeel programa en curso así se encuentre en otro archivo

UNEXPO – Pto. Ordaz. MICROPROCESADORES

EXTERN SubRutina....CALL SubRutina

Ejemplo

Page 15: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

GLOBALGLOBAL Exporta a otros archivos etiquetas

SintáxisGLOBAL <Etiq> [, <Etiq>, ...]

Descripción: Si se desea que una etiqueta sea compartida porotros archivos debe definirse como global, seguido de laetiqueta. En el otro archivo debe definirse como EXTRN

UNEXPO – Pto. Ordaz. MICROPROCESADORES

SubRutinaGLOBAL SubRutinaaddwl 0xFFreturn

Ejemplo

Page 16: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

UDATAUDATA Inicia un conjunto de datos sin condiciones iniciales

Sintaxis<Etiq> UDATA [<DIR. RAM>]

Descripción: Esta directiva es utilizada para programasrelocalizables, generalmente es utilizada para reservar unaserie de datos que estará en el archivo de registros y podránser utilizados por otros archivos.

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Inicia un conjunto de datos sin condiciones iniciales

Sintaxis<Etiq> UDATA [<DIR. RAM>]

Descripción: Esta directiva es utilizada para programasrelocalizables, generalmente es utilizada para reservar unaserie de datos que estará en el archivo de registros y podránser utilizados por otros archivos.

UDATADato1 RES 1Dato2 RES 2

Ejemplo

Page 17: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

RESRES Reserva espacio de memoria

Sintaxis[<Etiq>] RES <res_mem>

Descripción:Esta directiva reserva la cantidad de memoria especificadas por<res_mem>, los datos en la memoria se pueden accederapuntado por <Etiq>.

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Reserva espacio de memoria

Sintaxis[<Etiq>] RES <res_mem>

Descripción:Esta directiva reserva la cantidad de memoria especificadas por<res_mem>, los datos en la memoria se pueden accederapuntado por <Etiq>.

UDATADato1 RES 1 ;Reserva un byte en la MEM RAM (sin cond. Ini.)Dato2 RES 2 ;Reserva dos byte en la MEM RAM (sin cond. Ini.)

Ejemplo

Page 18: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

RADIXRADIX Le indica al ensamblador el sistema de numeración con la quese colocan los números

SintaxisRADIX <Base>

Descripción: Con esta directiva se le indica al ensamblador labase con la cual se encuentran los números colocados en elprograma. Los valores validos son: hex, dec, oct

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Le indica al ensamblador el sistema de numeración con la quese colocan los números

SintaxisRADIX <Base>

Descripción: Con esta directiva se le indica al ensamblador labase con la cual se encuentran los números colocados en elprograma. Los valores validos son: hex, dec, oct

RADIX dec

Ejemplo

Page 19: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

#INCLUDE#INCLUDE Se inserta un archivo en el programa fuente actual

Sintaxis#INCLUDE <<Archivo_Incluir>>#INCLUDE <“Archivo_Incluir”>

Descripción: Tiene el mismo efecto que incluir el archivo detexto <<Archivo_Incluir>> en el programa fuente actual

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Se inserta un archivo en el programa fuente actual

Sintaxis#INCLUDE <<Archivo_Incluir>>#INCLUDE <“Archivo_Incluir”>

Descripción: Tiene el mismo efecto que incluir el archivo detexto <<Archivo_Incluir>> en el programa fuente actual

#INCLUDE “P16F877.inc”

#INCLUDE “c:\Programas\ASM\reg.h”

Ejemplo

Page 20: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas del Ensamblador

LISTLIST Mediante esta directiva se puede configurar la apariencia ycontrol del ensamblador

SintaxisLIST [<Opción_List>, …, <Opción_List>]

<Opción_List>p=<type> Tipo de C.r=<base> Base del Número a utilizar

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Mediante esta directiva se puede configurar la apariencia ycontrol del ensamblador

SintaxisLIST [<Opción_List>, …, <Opción_List>]

<Opción_List>p=<type> Tipo de C.r=<base> Base del Número a utilizar

LIST p=16F877, r=HEX

Ejemplo

Page 21: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Ejemplo 1LIST P=16F877

;Suma de dos números cada uno de 16 Bits;Suma: N1(16) + N2(16) -> N2(16); N1 <- N1_H:N1_L; N2 <- N2_H:N2_L;STATUS EQU 0x03C EQU 0x00W EQU 0x00F EQU 0x01N1_L EQU 0x20N1_H EQU 0x21N2_L EQU 0x22N2_H EQU 0x23;

ORG 0x0goto INICIO

ORG 0x5INICIO BANKSEL N1_L

movf N1_L,Waddwf N2_L,Fbtfsc STATUS,Cincf N2_H,Fmovf N1_H,Waddwf N2_H,Fgoto INICIOEND

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

LIST P=16F877;Suma de dos números cada uno de 16 Bits;Suma: N1(16) + N2(16) -> N2(16); N1 <- N1_H:N1_L; N2 <- N2_H:N2_L;STATUS EQU 0x03C EQU 0x00W EQU 0x00F EQU 0x01N1_L EQU 0x20N1_H EQU 0x21N2_L EQU 0x22N2_H EQU 0x23;

ORG 0x0goto INICIO

ORG 0x5INICIO BANKSEL N1_L

movf N1_L,Waddwf N2_L,Fbtfsc STATUS,Cincf N2_H,Fmovf N1_H,Waddwf N2_H,Fgoto INICIOEND

Page 22: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

LIST P=16F877RADIX HEX#INCLUDE "P16F877.inc"

;;Suma de dos números cada uno de 16 Bits;Suma: N1(16) + N2(16) -> N2(16); N1 <- N1_H:N1_L; N2 <- N2_H:N2_L;N1_L EQU 20N1_H EQU 21N2_L EQU 22N2_H EQU 23;

ORG 0x0goto INICIO

ORG 0x5INICIO movf N1_L,W

addwf N2_L,Fbtfsc STATUS,Cincf N2_H,Fmovf N1_H,Waddwf N2_H,Fgoto INICIOEND

Ejemplo 2LIST P=16F877RADIX HEX#INCLUDE "P16F877.inc"

;;Suma de dos números cada uno de 16 Bits;Suma: N1(16) + N2(16) -> N2(16); N1 <- N1_H:N1_L; N2 <- N2_H:N2_L;N1_L EQU 20N1_H EQU 21N2_L EQU 22N2_H EQU 23;

ORG 0x0goto INICIO

ORG 0x5INICIO movf N1_L,W

addwf N2_L,Fbtfsc STATUS,Cincf N2_H,Fmovf N1_H,Waddwf N2_H,Fgoto INICIOEND

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Page 23: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

EnlazadorProg1.asm

MPASM

Prog2.asm

MPASM

Prog1.o Prog2.o

16F877.lkr

MPLINK

Programa.HEX

Archivos Fuente

Ensamblador

Archivos ObjetoRelocalizables

Archivoslocalizador deDir.

Enlazador

Archivo final.HEX

Programa.CODPrograma.OUT Programa.LST

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Prog1.asm

MPASM

Prog2.asm

MPASM

Prog1.o Prog2.o

16F877.lkr

MPLINK

Programa.HEX

Archivos Fuente

Ensamblador

Archivos ObjetoRelocalizables

Archivoslocalizador deDir.

Enlazador

Archivo final.HEX

Programa.CODPrograma.OUT Programa.LST

Page 24: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Archivos de Entrada del Enlazador

Archivo Objeto (.o)Archivo Objeto (.o)

Son archivos cuyo código son relocalizables, o sea que lasdirecciones de los datos a usarse y la localización del programano están definidos en este archivo, y se genera a partir delensamblador

Archivo para Localización de Código y Datos (.lkr)Archivo para Localización de Código y Datos (.lkr)

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Archivo para Localización de Código y Datos (.lkr)Archivo para Localización de Código y Datos (.lkr)

En este archivo se debe indicar las direcciones en donde sedebe localizar el programa y los datos que no se especificaronen los archivos (.o)

Page 25: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Archivos de Salida del Enlazador

Archivo COFF (.out, .cof)Archivo COFF (.out, .cof)

Este es un archivo generado por MPLINK para generar losarchivos .HEX y el LST

Archivo COD (.cod):Archivo COD (.cod):

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

archivo usado durante la depuración por MPLAB, puede serusado durante la simulación

Page 26: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Archivos de Salida del Enlazador

Archivo HEX (.hex):Archivo HEX (.hex):

Archivo guardado en formato Intel HEX, este archivo esutilizado para grabar el programa en el microcontrolador o parala depuración en el simulador

Archivo de Referencias Cruzadas LST (.LST):Archivo de Referencias Cruzadas LST (.LST):

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Archivo de Referencias Cruzadas LST (.LST):Archivo de Referencias Cruzadas LST (.LST):

Este archivo muestra el programa en mnemónico y en códigomaquina

Page 27: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas para el archivo lkr

CODEPAGCODEPAG Esta directiva es utilizada para definir la memoria de programaa usarse

Sintaxis:CODEPAGE NAME=memName START=addr END=addr [PROTECTED] [FILL=fillvalue]

Para definir Regiones de memoria ROMPara definir Regiones de memoria ROM

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Sintaxis:CODEPAGE NAME=memName START=addr END=addr [PROTECTED] [FILL=fillvalue]

Page 28: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas para el archivo lkr

RESET0000H

Vector Interrupción0004H0005H

07FFH0800H

0FFFH1000H

17FFH

1FFFH

1800H

Página 02 K

Página 12 K

Página 22 K

Página 32 K

CODEPAGE NAME=STARTUP START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FFCODEPAGE NAME=page1 START=0x800 END=0xFFFCODEPAGE NAME=page2 START=0x1000 END=0x17FFCODEPAGE NAME=page3 START=0x1800 END=0x1FFF

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

RESET0000H

Vector Interrupción0004H0005H

07FFH0800H

0FFFH1000H

17FFH

1FFFH

1800H

Página 02 K

Página 12 K

Página 22 K

Página 32 K

Page 29: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas para el archivo lkr

Registros mapeados en BancosRegistros mapeados en Bancos

DATABANK NAME=memName START=addr END=addr [PROTECTED]

Para definir Regiones de memoria RAMPara definir Regiones de memoria RAM

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Registro que se encuentran en los cuatro bancosRegistro que se encuentran en los cuatro bancos

SHAREBANK NAME=memName START=addr END=addr [PROTECTED]

Page 30: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

INDFTMR0PCL

STATUSFSR

PORTA

PORTCPORTB

PORTD

PCLATH

PIR1INTCON

PIR2TMR1L

T1CONTMR1H

TMR2T2CON

SSPBUFSSPCONCCPR1LCCPR1H

CCP1CONRCSTATXREGRCREGCCPR2LCCPR2H

CCP2CONADRESHADCON0

Banco 0

00h

RegistrosPropocitoGeneral(GPR)

96 Bytes

01h02h03h04h05h06h07h08h09h0Ah0Bh0Ch0Dh0Eh0Fh10h11h12h13h14h15h16h17h18h19h1Ah1Bh1Ch1Dh1Eh1Fh

7Fh

PORTE

20h

INDFOPTION_REG

PCLSTATUS

FSRTRISA

TRISCTRISB

TRISD

PCLATH

PIE1INTCON

PIE2

SSPCON2

PCON

PR2SSPADDSSPSTAT

TXSTASPBRG

ADRESLADCON1

Banco 1

80h

RegistrosPropocitoGeneral(GPR)

80 Bytes

81h82h83h84h85h86h87h88h89h8Ah8Bh8Ch8Dh8Eh8Fh90h91h92h93h94h95h96h97h98h99h9Ah9Bh9Ch9Dh9Eh9Fh

FFh

TRISE

A0h

F0hAcceso70h-7Fh

EFh

INDFTMR0PCL

STATUSFSR

PORTB

PCLATH

EEDATAINTCON

EEADREEDATHEEADRH

Banco 2

100h

RegistrosPropocitoGeneral(GPR)

80 Bytes

101h102h103h104h105h106h107h108h109h10Ah10Bh10Ch10Dh10Eh10Fh110h111h112h113h114h115h116h117h118h119h11Ah11Bh11Ch11Dh11Eh11Fh

17Fh

120h

Acceso70h-7Fh

170h16Fh

RegistrosPropocitoGeneral(GPR)

16 Bytes

INDFOPTION_REG

PCLSTATUS

FSR

TRISB

PCLATH

EECON1INTCON

EECON2ReservadoReservado

Banco 3

180h

RegistrosPropocitoGeneral(GPR)

80 Bytes

181h182h183h184h185h186h187h188h189h18Ah18Bh18Ch18Dh18Eh18Fh190h191h192h193h194h195h196h197h198h199h19Ah19Bh19Ch19Dh19Eh19Fh

1FFh

1A0h

Acceso70h-7Fh

1F0h1EFh

RegistrosPropocitoGeneral(GPR)

16 Bytes

Dir. Dir. Dir. Dir.

Directivas para el archivo lkrINDFTMR0PCL

STATUSFSR

PORTA

PORTCPORTB

PORTD

PCLATH

PIR1INTCON

PIR2TMR1L

T1CONTMR1H

TMR2T2CON

SSPBUFSSPCONCCPR1LCCPR1H

CCP1CONRCSTATXREGRCREGCCPR2LCCPR2H

CCP2CONADRESHADCON0

Banco 0

00h

RegistrosPropocitoGeneral(GPR)

96 Bytes

01h02h03h04h05h06h07h08h09h0Ah0Bh0Ch0Dh0Eh0Fh10h11h12h13h14h15h16h17h18h19h1Ah1Bh1Ch1Dh1Eh1Fh

7Fh

PORTE

20h

INDFOPTION_REG

PCLSTATUS

FSRTRISA

TRISCTRISB

TRISD

PCLATH

PIE1INTCON

PIE2

SSPCON2

PCON

PR2SSPADDSSPSTAT

TXSTASPBRG

ADRESLADCON1

Banco 1

80h

RegistrosPropocitoGeneral(GPR)

80 Bytes

81h82h83h84h85h86h87h88h89h8Ah8Bh8Ch8Dh8Eh8Fh90h91h92h93h94h95h96h97h98h99h9Ah9Bh9Ch9Dh9Eh9Fh

FFh

TRISE

A0h

F0hAcceso70h-7Fh

EFh

INDFTMR0PCL

STATUSFSR

PORTB

PCLATH

EEDATAINTCON

EEADREEDATHEEADRH

Banco 2

100h

RegistrosPropocitoGeneral(GPR)

80 Bytes

101h102h103h104h105h106h107h108h109h10Ah10Bh10Ch10Dh10Eh10Fh110h111h112h113h114h115h116h117h118h119h11Ah11Bh11Ch11Dh11Eh11Fh

17Fh

120h

Acceso70h-7Fh

170h16Fh

RegistrosPropocitoGeneral(GPR)

16 Bytes

INDFOPTION_REG

PCLSTATUS

FSR

TRISB

PCLATH

EECON1INTCON

EECON2ReservadoReservado

Banco 3

180h

RegistrosPropocitoGeneral(GPR)

80 Bytes

181h182h183h184h185h186h187h188h189h18Ah18Bh18Ch18Dh18Eh18Fh190h191h192h193h194h195h196h197h198h199h19Ah19Bh19Ch19Dh19Eh19Fh

1FFh

1A0h

Acceso70h-7Fh

1F0h1EFh

RegistrosPropocitoGeneral(GPR)

16 Bytes

Dir. Dir. Dir. Dir.

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Page 31: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas para el archivo lkr

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

Page 32: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas para el archivo lkr

SECTIONSECTION La directiva SECTION define la sección de bloque de programa(ROM), o de datos (RAM) que contendrá la sección

Sintaxis:SECTION NAME=’NomSecc’{ ROM=’NomMEM’ | RAM=’NomMEM’ }

Para definir la localización de memoria ROM y RAMPara definir la localización de memoria ROM y RAM

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Sintaxis:SECTION NAME=’NomSecc’{ ROM=’NomMEM’ | RAM=’NomMEM’ }

Page 33: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Directivas para el archivo lkrD_Main UDATA

Num1_16H RES 1Num1_16L RES 1Num2_16H RES 1Num2_16L RES 1RES_16H RES 1RES_16L RES 1

RESET CODEgoto INICIO

ProgMain CODEINICIO

BANKSEL Num1_16Hmovf Num1_16H,Wmovwf N1_Hmovf Num1_16L,W

movwf N1_Lmovf Num2_16H,Wmovwf N2_Hmovf Num2_16L,Wmovwf N2_Lcall Suma16x16movf N2_H,Wmovwf RES_16Hmovf N2_L,Wmovwf RES_16Lgoto INICIO

EjemploEjemplo

CODEPAGE NAME=STARTUP START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=RESET ROM=STARTUP // Vector de ResetSECTION NAME=ProgMain ROM=page0 // page0

SECTION NAME=D_Main RAM=gpr2 // Se colocan los datos// Main.asm// gpr2 **110h-16Fh**

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

D_Main UDATANum1_16H RES 1Num1_16L RES 1Num2_16H RES 1Num2_16L RES 1RES_16H RES 1RES_16L RES 1

RESET CODEgoto INICIO

ProgMain CODEINICIO

BANKSEL Num1_16Hmovf Num1_16H,Wmovwf N1_Hmovf Num1_16L,W

movwf N1_Lmovf Num2_16H,Wmovwf N2_Hmovf Num2_16L,Wmovwf N2_Lcall Suma16x16movf N2_H,Wmovwf RES_16Hmovf N2_L,Wmovwf RES_16Lgoto INICIO

CODEPAGE NAME=STARTUP START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=RESET ROM=STARTUP // Vector de ResetSECTION NAME=ProgMain ROM=page0 // page0

SECTION NAME=D_Main RAM=gpr2 // Se colocan los datos// Main.asm// gpr2 **110h-16Fh**

Page 34: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

LIST P=16F877#INCLUDE "P16F877.inc"

;;Suma de dos números cada uno de 16 Bits; Suma: N1(16) + N2(16) -> N2(16); N1 <- N1_H:N1_L; N2 <- N2_H:N2_L;

D_Main UDATAN1_L RES 1N1_H RES 1N2_L RES 1N2_H RES 1;RESET CODE

goto INICIOProgMain CODEINICIO movf N1_L,W

addwf N2_L,Fbtfsc STATUS,Cincf N2_H,Fmovf N1_H,Waddwf N2_H,Fgoto INICIOEND

Directivas para el archivo lkr

CODEPAGE NAME=STARTUP START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=RESET ROM=STARTUP // Vector de ResetSECTION NAME=ProgMain ROM=page0 // page0

SECTION NAME=D_Main RAM=gpr2 // Se colocan los datos// Main.asm// gpr2 **110h-16Fh**

16F877.lkr

LIST P=16F877#INCLUDE "P16F877.inc"

;;Suma de dos números cada uno de 16 Bits; Suma: N1(16) + N2(16) -> N2(16); N1 <- N1_H:N1_L; N2 <- N2_H:N2_L;

D_Main UDATAN1_L RES 1N1_H RES 1N2_L RES 1N2_H RES 1;RESET CODE

goto INICIOProgMain CODEINICIO movf N1_L,W

addwf N2_L,Fbtfsc STATUS,Cincf N2_H,Fmovf N1_H,Waddwf N2_H,Fgoto INICIOEND

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

CODEPAGE NAME=STARTUP START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=RESET ROM=STARTUP // Vector de ResetSECTION NAME=ProgMain ROM=page0 // page0

SECTION NAME=D_Main RAM=gpr2 // Se colocan los datos// Main.asm// gpr2 **110h-16Fh**

Page 35: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

EjemplosEjemplo 1Ejemplo 1

Se desea sumar dos números, cada uno de 8 bits, uno de losnúmeros se encuentra en la dirección A0h y otro en la 120h.

Suma.ASM

Suma.HEX

MPASM

Archivo Fuente

Ensamblador

Archivo deSalida .HEX

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Suma.ASM

Suma.HEX

MPASM

Archivo Fuente

Ensamblador

Archivo deSalida .HEX

Page 36: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Ejemplos

EjemploEjemplo

Se debe convertir un numero binario de 16 bits en su respectivocódigo BCD:

BIN (21:20)h

BCD (1A2:1A1:1A0)h

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

Se debe convertir un numero binario de 16 bits en su respectivocódigo BCD:

BIN (21:20)h

BCD (1A2:1A1:1A0)h

Page 37: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

Ejemplo

Top_BB.asm

MPASM

Bin2BCD.asm

MPASM

16F877.lkr

Archivos Fuente

Ensamblador

Archivos ObjetoRelocalizables

Archivos

Top_BB.o Bin2BCD.o

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

16F877.lkr

MPLINK

Bin16BCD.HEX

Archivoslocalizador deDir.

Enlazador

Archivo final.HEX

Page 38: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

LIST p='16f877'include "p16f877.inc"

EXTERN H_byte, L_byte, R0, R1, R2, B2_BCD;Datos_Bi UDATABIN_L RES 1BIN_H RES 1;Datos_BCD UDATABCD_L RES 1BCD_M RES 1BCD_H RES 1;STARTUP CODE

goto INICIO;Prog1 CODE;INICIO

movf BIN_L,Wmovwf L_bytemovf BIN_H,Wmovwf H_byte

;call B2_BCD

;BANKSEL BCD_Lmovf R2,Wmovwf BCD_Lmovf R1,Wmovwf BCD_Mmovf R0,Wmovwf BCD_H

;goto INICIOEND

EjemploTop_BB.asm

CODEPAGE NAME=vec_res START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=STARTUP ROM=vec_res // Vector de ResetSECTION NAME=PROG1 ROM=page0 // page0

SECTION NAME=Datos_Bi RAM=gpr0 // N1 y N2 -> GPR0SECTION NAME=Datos_BCD RAM=gpr3 // Num_1 y Num_2 -> NoBank

16F877.lkr

Etiquetas definidasEn otro archivo(Bin2BCD.asm)

LIST p='16f877'include "p16f877.inc"

EXTERN H_byte, L_byte, R0, R1, R2, B2_BCD;Datos_Bi UDATABIN_L RES 1BIN_H RES 1;Datos_BCD UDATABCD_L RES 1BCD_M RES 1BCD_H RES 1;STARTUP CODE

goto INICIO;Prog1 CODE;INICIO

movf BIN_L,Wmovwf L_bytemovf BIN_H,Wmovwf H_byte

;call B2_BCD

;BANKSEL BCD_Lmovf R2,Wmovwf BCD_Lmovf R1,Wmovwf BCD_Mmovf R0,Wmovwf BCD_H

;goto INICIOEND

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

CODEPAGE NAME=vec_res START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=STARTUP ROM=vec_res // Vector de ResetSECTION NAME=PROG1 ROM=page0 // page0

SECTION NAME=Datos_Bi RAM=gpr0 // N1 y N2 -> GPR0SECTION NAME=Datos_BCD RAM=gpr3 // Num_1 y Num_2 -> NoBank

Page 39: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

;Se Definen los DatosDATOS_BB UDATA

L_byte RES 1H_byte RES 1;;Se definen las etiquetas Globales

GLOBAL L_byte, H_byte;PROG1 CODE ;Codigo Pagina 0B2BCD

GLOBAL B2BCD.. ;Código de la. ;Sub-Rutina..RETURN

;END

ADD_BCD8.asm

Ejemplo

CODEPAGE NAME=vec_res START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=STARTUP ROM=vec_res // Vector de ResetSECTION NAME=PROG1 ROM=page0 // page0

SECTION NAME=DATOS RAM=gpr0 // N1 y N2 -> GPR0SECTION NAME=DATOS_BCD RAM=NoBank // Num_1 y Num_2 -> NoBank

16F877.lkr

Etiquetas definidasPara ser utilizadasPor otro archivo

;Se Definen los DatosDATOS_BB UDATA

L_byte RES 1H_byte RES 1;;Se definen las etiquetas Globales

GLOBAL L_byte, H_byte;PROG1 CODE ;Codigo Pagina 0B2BCD

GLOBAL B2BCD.. ;Código de la. ;Sub-Rutina..RETURN

;END

UNEXPO – Pto. Ordaz. MICROPROCESADORESUNEXPO – Pto. Ordaz. MICROPROCESADORES

CODEPAGE NAME=vec_res START=0x0 END=0x3 PROTECTEDCODEPAGE NAME=Vector_INT START=0x4 END=0x4 PROTECTEDCODEPAGE NAME=page0 START=0x5 END=0x7FF

DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTEDDATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTEDDATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTEDDATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED

DATABANK NAME=gpr0 START=0x20 END=0x6FDATABANK NAME=gpr1 START=0xA0 END=0xEFDATABANK NAME=gpr2 START=0x110 END=0x16FDATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=NoBank START=0x70 END=0x7FSHAREBANK NAME=NoBank START=0xF0 END=0xFFSHAREBANK NAME=NoBank START=0x170 END=0x17FSHAREBANK NAME=NoBank START=0x1F0 END=0x1FF

SECTION NAME=STARTUP ROM=vec_res // Vector de ResetSECTION NAME=PROG1 ROM=page0 // page0

SECTION NAME=DATOS RAM=gpr0 // N1 y N2 -> GPR0SECTION NAME=DATOS_BCD RAM=NoBank // Num_1 y Num_2 -> NoBank

Page 40: Ensamblador - Webnode · 2013-01-14 · Directivas del Ensamblador BANKSEL Se coloca en el banco de la memoria RAM interna SintÆxis BANKSEL  Descripción: Se utiliza

FINFIN