Departamento de Automatizacin y
Control Industrial - DACI
Modos de Direccionamiento
Temario
Modos de Direccionamiento
Set de Instrucciones
Desarrollo y Herramientas
Modos de Direccionamiento
Reflejan cada una de las formas en las que se puede acceder a un
dato
Modos de Direccionamiento
Modos de Direccionamiento
Modos de Direccionamiento
Modos de Direccionamiento
Modos de Direccionamiento
Modos de Direccionamiento
Ejemplo:
SBI $1C, 0
CBI $1C, 4
$1C
Modos de Direccionamiento
Modos de Direccionamiento
Set de Instrucciones
Temario
Modos de Direccionamiento
Set de Instrucciones
Desarrollo y Herramientas
Set de Instrucciones
Set de Instrucciones
Instrucciones de Transferencia de datos
Instrucciones Aritmeticas y Logicas
Instrucciones de bit
Instrucciones saltos y subrutinas
Otras Instrucciones
Set de Instrucciones
Set de Instrucciones
Set de Instrucciones
Set de Instrucciones
Set de Instrucciones
Set de Instrucciones
Instrucciones de Transferencia de datos
Instrucciones Aritmeticas y Logicas
Instrucciones de bit
Instrucciones saltos y subrutinas
Otras Instrucciones
Set de Instrucciones
Instrucciones Aritmeticas y Logicas
Set de Instrucciones
Instrucciones Aritmticas y Lgicas
Set de Instrucciones
Set de Instrucciones
Instrucciones de Transferencia de datos
Instrucciones Aritmeticas y Logicas
Instrucciones de bit
Instrucciones saltos y subrutinas
Otras Instrucciones
Set de Instrucciones
Instrucciones con Bit
Set de Instrucciones
Instrucciones con Bit
Set de Instrucciones
Set de Instrucciones
Instrucciones de Transferencia de datos
Instrucciones Aritmeticas y Logicas
Instrucciones de bit
Instrucciones saltos y subrutinas
Otras Instrucciones
Set de Instrucciones
Saltos y Subrutinas
Set de Instrucciones
Saltos y Subrutinas
Set de Instrucciones
Saltos y Subrutinas
Set de Instrucciones
Saltos y Subrutinas
Set de Instrucciones
Saltos y Subrutinas
Set de Instrucciones
Set de Instrucciones
Instrucciones de Transferencia de datos
Instrucciones Aritmeticas y Logicas
Instrucciones de bit
Instrucciones saltos y subrutinas
Otras Instrucciones
Set de Instrucciones
Otras Instrucciones
Set de Instrucciones
Otras Instrucciones (Control MCU)
Set de Instrucciones
Temario
Modos de Direccionamiento
Set de Instrucciones
Desarrollo y Herramientas
Desarrollo y Herramientas
LENGUAJE ENSAMBLADOR
Lenguaje de bajo nivel (muy cercano al cdigo mquina)
Dependiente del microprocesador y del programa ensamblador
(algunos fabricantes deensambladores utilizan lenguajes
distintos a los propuestos por el fabricante del uP)
CODIGO FUENTE
Admite instrucciones, directivas para el ensamblado y expresiones
Lenguaje
Desarrollo y Herramientas
ETIQUETAS
Referencias simblicas que facilitan la programacin
Pueden referirse a direcciones o a datos (pero siempre son
constantes)
DIRECTIVAS
Instrucciones dadas al ensamblador para que opere de una
determinada forma NO pertenecen al juego de instrucciones
del uP.
Desarrollo y Herramientas
Directivas de Ensamblador
Son comando del programa que genera cdigo objeto y que se
encuentran mezclados en el fichero fuente con las instrucciones del
Uc.
.CSEG
.DSEG
.DB
Code Segment
Data Segment
Define Byte
Ejemplo:
.DB 0, 255, 0b01011101, -128, 0xAA, $45
.DW Define word en el programa de memoria
Ejemplo:
.DW 0, 0xFFFF, -32768, 65535
Desarrollo y Herramientas
Directivas de Ensamblador
.BYTE
Desarrollo y Herramientas
.EQU
.EQU
.EQU
Lenguaje Ensamblador
El lenguaje ensamblador consiste basicamente en cuatro campos:
[ etiqueta: ] mnemonico [operandos] [; comentario]
Desarrollo y Herramientas
MACRO-ENSAMBLADORES
Son ensambladores que permiten la definicin de macros
(similares a los #define de C) Facilitan la estructuracin y
escritura del cdigo
Desarrollo y Herramientas
COMPILADOR
Programa que transforma un cdigo fuente en un cdigo objeto
Un ensamblador es un compilador, ya que transforma cdigo
fuente (lenguaje ensamblador), en cdigo objeto (cdigo
mquina).
Los compiladores suelen trabajar
en varios pasos, transformando el
cdigo fuente (C, C++,...) en
lenguaje
ensamblador,
ensamblando cada mdulo, y
enlanzando despus los mdulos
con bibliotecas, para generar un
ejecutable.
Desarrollo y Herramientas
Desarrollo y Herramientas
EJERCICIO: Realizar una suma y guardarda en memoria SRAM ($300)
1.
2.
3.
4.
5.
6.
7.
8.
Desarrollo y Herramientas
SOLUCIN: Realizar una suma y guardarda en memoria SRAM ($300)
.include "m164pdef.inc"
.equ SUM = 0x300
; localizacion SRAM $300 para SUM
.org 0x00
; empieza direccion 0x00
rjmp inicio
inicio:
ldi r16,0x25
; cargar r16 con 0x25
ldi r17,0x34
; cargar r17 con 0x34
ldi r18,0b00110001 ; cargar r18 con 0x31
add r16,r17
; sumar r17 a r16 se almacena en r16
add r16,r18
; sumar r18 a r16 se almacena en r16
ldi r17, 11
; cargar r17 con 0x0B
add r16,r17
; sumar r17 a r16 se almacena en r16
sts SUM,r16
; guardar r16 en SUM (0x300)
saltar:
rjmp saltar
; lazo infinito
Bibliografa
1. Muhammad Ali Mazidi (2011). The avr
microcontroller and embedded system.
2. Yago Torroja & Jorge Portilla, Curso de
Microcontroladores, Escuela Tcnica
Superior de Ingenieros Industriales,
Universidad Politcnica de Madrid
SISTEMAS MICROPROCESADOS
Departamento de Automatizacin y
Control Industrial - DACI
Marco Herrera
marco.herrera@epn.edu.ec