Está en la página 1de 18

La primera abstraccin de la mquina

para el programador
Tema 3: Lenguaje ensamblador
ndice
Introduccin.
Generacin cdigo mquina: ensamblador,
montador y cargador.
Instrucciones y directivas.
Macros y subrutinas.
Interfaz binario de aplicacin (ABI).
Convenios de llamada a procedimientos.
Qu es?
Mnemnicos para instrucciones, smbolos en lugar de bits,
etiquetas en lugar de direcciones, macros en lugar de repetir.
Lenguaje: notacin formal para describir
algoritmos que sern ejecutados por un
compilador.
Lenguaje ensamblador: representacin
simblica del lenguaje mquina permitiendo
que sea ms legible y fcil de utilizar.
Traductores
inicio:
movf I,W
subwf J,W
btfss STATUS,C
goto JmI
movf G,W
addwf H,W ;suma
goto fin ;hemos terminado
JmI: movf G,W
subwf H,W
fin: movwf RESULT
sleep
080C
020D
1D83
2807
080F
070E
2809
080F
070E
0090
0063
Lenguaje
ensamblador
Lenguaje
mquina
* Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip.
Elementos del
lenguaje ensamblador
inicio:
movf I,W
subwf J,W
btfss STATUS,C
goto JmI
movf G,W
addwf H,W ;suma
goto fin ;hemos terminado
JmI: movf G,W
subwf H,W
fin: movwf RESULT
sleep
Etiquetas
Smbolos
Mnemnicos
Comentarios
Ensamblador
Primera
pasada
Segunda
pasada
Listado del
programa
Fichero
objeto
Tabla de
smbolos
Ensamblador
Montador y Cargador
Fuente 1
Objeto 1
Montador
Fuente 2
Objeto 2
Fuente 3
Objeto 3
Ejecutable Cargador
inicio_bucle: addwf a,W ;Comienzo del bucle
Formato de una sentencia
en ensamblador
ETIQUETA: Nombre que se le asigna a una posicin de la
memoria de programa. Empieza en la 1 columna y suele ir
seguida de ':.
MNEMNICO: Representacin simblica del campo de
operacin (COP).
OPERANDOS: Representados por smbolos o constantes,
separados por comas.
COMENTARIOS: Comienzan con ';.
Tipos de sentencias
Instrucciones simblicas del lenguaje mquina.
o Corresponden con instrucciones del repertorio de
instrucciones (ISA).
o Son ejecutadas por el computador.
Directivas o pseudoinstrucciones.
o No tienen traduccin en lenguaje mquina.
o Controlan la operacin del programa ensamblador
y la generacin del programa en lenguaje mquina.
Comentarios.
o Forman parte de los archivo fuente tipo texto.
o No tienen traduccin en lenguaje mquina.
o Facilitan la comprensin del cdigo.
Tipos de directivas
De control: Compilacin condicional.
De datos: Asignacin de memoria, smbolos.
De formato de informes.
De definicin de macros.
Para la creacin de archivos objeto.
Directivas de control
#include p16f84.inc
ifndef DEBUG
...
endif
if NIVEL_LOG > 5
...
endif
Permiten compilar cdigo de forma condicional.
Permiten incluir otros archivos.
Directivas de datos
STATUS equ 0x03
regs equ 0x0c
cblock regs
I,; I vale 0x0C
J ; J vale 0x0D
endc
org 0x10
btfsc STATUS,2
main:movf I,0
addwf J,1
goto main
Determina la direccin de
Permiten controlar la ubicacin de datos e instrucciones
en la memoria.
Permiten hacer referencia a operandos de forma
simblica.
Macros
Permiten asignar nombre a una secuencia de instrucciones:
o Cuando se referencia, se produce una sustitucin (expansin)
de la macro.
o No existe un salto a la macro, sino copias de la secuencia de
instrucciones.
o Aumenta la longitud del programa.
o No requieren llamada ni retorno.
o Cuidado con los saltos a/desde una macro!
movlw MAX_LUZ & 0xff
subwf nivel_luz, W
btfsc STATUS,C
goto apagar_luz
movlw MAX_LUZ & 0xff
subwf nivel_luz, W
btfsc STATUS,C
goto apagar_luz
jge nivel_luz, MAX_LUZ, apagar_luz
Ejemplo de macro
jge macro reg,cte,dest
movlw cte & 0xff
subwf reg,W
btfsc STATUS,C
goto dest
endm
jge nivel_luz, MAX_LUZ, apagar_luz
movlw MAX_LUZ & 0xff
subwf nivel_luz, W
btfsc STATUS,C
goto apagar_luz
jge nivel_luz, MAX_LUZ, apagar_luz
Literales y expresiones
Tipo Sintaxis Ejemplo
Decimal D'<dgitos>' D'100'
Hexadecimal H'<dgitos>' H'F5'
0x<dgitos>' 0xf5
Octal O'<dgitos>' O'206'
Binario B'<dgitos>' B'100'
ASCII A'<dgitos>' A'o'
Cadenas de caracteres entre comillas.
Constantes numricas en distintas bases:
Operadores: $, aritmticos, high, low
Subrutinas
Conjunto de instrucciones que implementan una funcin
bien definida (funciones o procedimientos).
o Unidad bsica de abstraccin.
o Elemento bsico de reutilizacin de cdigo.
o Hacen el cdigo ms estructurado, entendible y facil de
utilizar.
Se implementan almacenando el PC en la pila.
o call salva el PC en la pila.
o return y semejantes, lo recuperan.
Ejemplo de subrutina
org 0
call proc
goto $
proc: movf I,W
subwf J,W
btfsc STATUS,Z
goto L1
movf G,W
addwf H,W
movwf F
L1: movf F,W
subwf I,W
movwf RET
return
Conceptos importantes
Estructura general de sentencias ensamblador.
Pseudoinstrucciones o directivas.
Definicin y utilitzacin de macros.
Definicin y utilizacin de subrutinas.
Empleo de la pila de en llamadas a subrutinas.

También podría gustarte