18
La primera abstracción de la máquina para el programador Tema 3: Lenguaje ensamblador

Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Embed Size (px)

Citation preview

Page 1: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

La primera abstracción de la máquina para el programador

Tema 3: Lenguaje ensamblador

Page 2: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Índice

• Introducción.

• Generación código máquina: ensamblador,

montador y cargador.

• Instrucciones y directivas.

• Macros y subrutinas.

• Interfaz binario de aplicación (ABI).

• Convenios de llamada a procedimientos.

Page 3: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

¿Qué es?

Mnemónicos para instrucciones, símbolos en lugar de bits, etiquetas en lugar de direcciones, macros en lugar de repetir.

• Lenguaje: notación formal para describir

algoritmos que serán ejecutados por un

compilador.

• Lenguaje ensamblador: representación

simbólica del lenguaje máquina permitiendo

que sea más legible y fácil de utilizar.

Page 4: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Traductores

inicio:

movf I,W

subwf J,W

btfss STATUS,C

goto JmI

movf G,W

addwf H,W ;sumagoto 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

Lenguajeensamblador

Lenguajemáquina

* Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip.

Page 5: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Elementos del lenguaje ensamblador

inicio:

movf I,W

subwf J,W

btfss STATUS,C

goto JmI

movf G,W

addwf H,W ;sumagoto fin ;hemos terminado

JmI: movf G,W

subwf H,W

fin: movwf RESULT

sleep

Etiquetas

Símbolos

Mnemónicos

Comentarios

Page 6: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Ensamblador

Primera pasada

Segundapasada

Listado delprograma

Ficheroobjeto

Tabla desímbolos

Page 7: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Ensamblador

Montador y Cargador

Fuente 1

Objeto 1

Montador

Fuente 2

Objeto 2

Fuente 3

Objeto 3

Ejecutable Cargador

Page 8: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

inicio_bucle: addwf a,W ;Comienzo del bucle

Formato de una sentenciaen ensamblador

• ETIQUETA: Nombre que se le asigna a una posición de la

memoria de programa. Empieza en la 1ª columna y suele ir

seguida de ':‘.

• MNEMÓNICO: Representación simbólica del campo de

operación (COP).

• OPERANDOS: Representados por símbolos o constantes,

separados por comas.

• COMENTARIOS: Comienzan con ';‘.

Page 9: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Tipos de sentencias

• Instrucciones simbólicas del lenguaje máquina.

o Corresponden con instrucciones del repertorio de

instrucciones (ISA).

o Son ejecutadas por el computador.

• Directivas o pseudoinstrucciones.

oNo tienen traducción en lenguaje máquina.

o Controlan la operación del programa ensamblador

y la generación del programa en lenguaje máquina.

• Comentarios.

o Forman parte de los archivo fuente tipo texto.

oNo tienen traducción en lenguaje máquina.

o Facilitan la comprensión del código.

Page 10: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Tipos de directivas

• De control: Compilación condicional.

• De datos: Asignación de memoria, símbolos.

• De formato de informes.

• De definición de macros.

• Para la creación de archivos objeto.

Page 11: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Directivas de control

#include “p16f84.inc”

ifndef DEBUG

...

endif

if NIVEL_LOG > 5

...

endif

• Permiten compilar código de forma condicional.

• Permiten incluir otros archivos.

Page 12: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Directivas de datos

STATUS equ 0x03

regs equ 0x0c

cblock regs

I,; I vale 0x0CJ ; J vale 0x0D

endc

org 0x10

btfsc STATUS,2

main:movf I,0

addwf J,1

goto main

Determina la dirección de

• Permiten controlar la ubicación de datos e instrucciones

en la memoria.

• Permiten hacer referencia a operandos de forma

simbólica.

Page 13: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Macros

• Permiten asignar nombre a una secuencia de instrucciones:

o Cuando se referencia, se produce una sustitución (expansión)

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!

Page 14: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

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

Page 15: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Literales y expresiones

Tipo Sintaxis Ejemplo

Decimal D'<dígitos>' D'100'

Hexadecimal H'<dígitos>' H'F5'

0x<dígitos>' 0xf5

Octal O'<dígitos>' O'206'

Binario B'<dígitos>' B'100'

ASCII A'<dígitos>' A'o'

• Cadenas de caracteres entre comillas.

• Constantes numéricas en distintas bases:

• Operadores: $, aritméticos, high, low

Page 16: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Subrutinas

• Conjunto de instrucciones que implementan una función

bien definida (funciones o procedimientos).

o Unidad básica de abstracción.

o Elemento básico de reutilización de código.

o Hacen el código más 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.

Page 17: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

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

Page 18: Tema 3: Lenguaje ensamblador · ensamblador Lenguaje máquina * Las instrucciones empleadas son del lenguaje ensamblador de los microcontroladores PIC de Microchip. Elementos del

Conceptos importantes

• Estructura general de sentencias ensamblador.

• Pseudoinstrucciones o directivas.

• Definición y utilitzación de macros.

• Definición y utilización de subrutinas.

• Empleo de la pila de en llamadas a subrutinas.