Академический Документы
Профессиональный Документы
Культура Документы
Archivo
Fuente
Ensamblador
Cdigo
Mquina
MPASM Ensamblador
Archivos Objeto
Programa1.o Programa2.o
Relocalizables
Archivos
16F877.lkr localizador de
Dir.
MPLINK Enlazador
Archivo final
Programa.HEX
.HEX
Ejemplo
CBLOCK 0x20
Nombre1, 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
Sintxis
[<Etiq>] CODE [<Direccin ROM>]
Ejemplo
RESET CODE H0000 ;La instruccin GOTO se
GOTO START ;almacenara en la Dir. 0000h
Sintxis
[<Etiq>] DB <expr> [, <expr >, , <expr >]
Ejemplo
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
Sintxis
[<Etiq>] DE <expr> [, <expr >, , <expr >]
Ejemplo
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
Sintxis
[<Etiq>] ORG <expr>
Ejemplo
RESET ORG 0x0000
movlw 01 ;Esta instruccin comienza en la dir
addlw 01 ;0000h de la memora de Prog, y las
;dems se incrementa la dir
Sintxis
END
Sintxis
[<Etiq>] EQU <expr>
Ejemplo
STATUS EQU 0x03 ;le asigna el valor 03h a la etiqueta
;STATUS
Sintxis
BANKSEL <Etiq>
Ejemplo
NUMERO1 EQU 0x0A ;le asigna el valor 0Ah a la etiqueta
;NUMERO1
Sintaxis
EXTERN <Etiq> [, <Etiq>, ...]
Ejemplo
EXTERN SubRutina
....
CALL SubRutina
Sintxis
GLOBAL <Etiq> [, <Etiq>, ...]
Ejemplo
SubRutina
GLOBAL SubRutina
addwl 0xFF
return
Sintaxis
<Etiq> UDATA [<DIR. RAM>]
Ejemplo
UDATA
Dato1 RES 1
Dato2 RES 2
Sintaxis
[<Etiq>] RES <res_mem>
Descripcin:
Esta directiva reserva la cantidad de memoria especificadas por
<res_mem>, los datos en la memoria se pueden acceder
apuntado por <Etiq>.
Ejemplo
UDATA
Dato1 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.)
Sintaxis
RADIX <Base>
Ejemplo
RADIX dec
Sintaxis
#INCLUDE <<Archivo_Incluir>>
#INCLUDE <Archivo_Incluir>
Ejemplo
#INCLUDE P16F877.inc
#INCLUDE c:\Programas\ASM\reg.h
Sintaxis
LIST [<Opcin_List>, , <Opcin_List>]
<Opcin_List>
p=<type> Tipo de C.
r=<base> Base del Nmero a utilizar
Ejemplo
LIST p=16F877, r=HEX
ORG 0x5
INICIO BANKSEL N1_L
movf N1_L,W
addwf N2_L,F
btfsc STATUS,C
incf N2_H,F
movf N1_H,W
addwf N2_H,F
goto INICIO
END
UNEXPO Pto. Ordaz. MICROPROCESADORES
Ejemplo 2
LIST P=16F877
RADIX HEX
#INCLUDE "P16F877.inc"
;
;Suma de dos nmeros 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 20
N1_H EQU 21
N2_L EQU 22
N2_H EQU 23
;
ORG 0x0
goto INICIO
ORG 0x5
INICIO movf N1_L,W
addwf N2_L,F
btfsc STATUS,C
incf N2_H,F
movf N1_H,W
addwf N2_H,F
goto INICIO
END
Archivos Objeto
Prog1.o Prog2.o
Relocalizables
Archivos
16F877.lkr localizador de
Dir.
MPLINK Enlazador
Sintaxis:
CODEPAGE NAME=memName START=addr END=addr [PROTECTED] [FILL=fillvalue]
Pgina 0
2K
07FFH
0800H
Pgina 1
2K
0FFFH
1000H
Pgina 2
2K
17FFH
1800H
Pgina 3
2K
1FFFH
Sintaxis:
SECTION NAME=NomSecc{ ROM=NomMEM | RAM=NomMEM }
MPASM Ensamblador
Archivo de
Suma.HEX
Salida .HEX
Ejemplo
BIN (21:20)h
BCD (1A2:1A1:1A0)h
Archivos Objeto
Top_BB.o Bin2BCD.o
Relocalizables
Archivos
16F877.lkr localizador de
Dir.
MPLINK Enlazador
Archivo final
Bin16BCD.HEX
.HEX