Sunteți pe pagina 1din 43

SISTEMAS MICROPROCESADOS

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

Nota: Normalmente denominamos dato efectivo al dato con el que finalmente se


trabaja (para cargarlo, guardarlo u operarlo con la ALU), y direccin efectiva a la
direccin a la que finalmente se accede para obtener el dato con el que se trabaja

Modos de Direccionamiento

Modos de Direccionamiento

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

Instrucciones de Transferencia de datos


-Son instrucciones que tienen como origen o como destino (o ambos)
un registro del microprocesador, pero que no realizan operaciones con
la ALU, slo transfieren un dato de un sitio a otro.
En este apartado se va a ver:
Carga y almacenamiento de 8 bits
Carga y almacenamiento de 16 bits
Manejo de la pila
Transferencia de registros
Estas instrucciones, junto con las aritmticas, son las ms frecuentes.
Se soportan casi todos los modos de direccionamiento.
Siendo de las ms frecuentes, son las ms rpidas en trminos de
nmero de ciclos de reloj

Set de Instrucciones

Instrucciones de Transferencia de datos

Set de Instrucciones

Instrucciones de Transferencia de datos

Set de Instrucciones

Cuidado!: Los registros de entrada/salida estn mapeados en memoria, y slo


algunos son accesibles a travs de las instrucciones IN/OUT (podemos acceder a
alguno de ellos de dos formas diferentes; en concreto a los 64 primeros, que son las
E/S de la 0x00 a la 0x3F, y que se corresponden con las posiciones de memoria 0x20
a la 0x5F)

Set de Instrucciones
Instrucciones Aritmeticas y Logicas

Set de Instrucciones
Instrucciones Aritmticas y Lgicas

Set de Instrucciones
Instrucciones con Bit

Set de Instrucciones
Instrucciones con Bit

Set de Instrucciones
Instrucciones con Bit

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
Otras Instrucciones

Son pseudo-instrucciones, o instrucciones "repetidas"


- Por ejemplo, SER Rden realidad es un LDI Rd, 0xFF o en TST en
realidad hacemos AND Rd, Rd. No es ms que una forma distinta
de llamar a lo mismo.

Set de Instrucciones
Otras Instrucciones (Control MCU)

Set de Instrucciones

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

Set de Instrucciones

Directivas de Ensamblador
.BYTE

Reserva bytes a una variable reservada en SRAM

Label: .BYTE expresin


Var1: .BYTE 1
Tabla: .BYTE 10
.DEF Asigna un nombre simblico a un registro
.DEF symbol= register
.DEF temp = R16

Set de Instrucciones

Directivas de Ensamblador
.EQU

Simbolo igual a la expresin

.EQU label= expresin


.EQU aux=2
.ORG Establece el origen del programa
.ORG expresin
.ORG 0x15

Set de Instrucciones

Directivas de Ensamblador
.EQU

Simbolo igual a la expresin

.EQU label= expresin


.EQU aux=2
.ORG Establece el origen del programa
.ORG expresin
.ORG 0x15

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)
Relacin directa (1 a 1) con el 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
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
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
ENSAMBLADOR
Transforma cdigo ensamblador (fuente) en cdigo mquina
(objeto)
Pueden producir cdigo objeto absoluto o reubicable
El cdigo reubicable interesa para poder utilizar el mismo cdigo
objeto en distintas arquitecturas objetivo (poder ubicar el
programa o partes del mismo en distintas posiciones de memoria)

Desarrollo y Herramientas
ENLAZADOR (LINKER)
cdigo ensamblador (fuente) en cdigo mquina (objeto)
Pueden producir cdigo objeto absoluto o reubicable
El cdigo reubicable interesa para poder utilizar el mismo cdigo
objeto en distintas arquitecturas objetivo (poder ubicar el
programa o partes del mismo en distintas posiciones de memoria)
CARGADOR
CARGADOR (LOADER)
En los sistemas empotrados, o existe un bootloader, o la carga se
realizar a travs de un programador directamente en la FLASH
En los computadores de propsito general, el cargador se
encarga de colocar los programas en la memoria y ejecutarlos
(normalmente, bajo control de un OS).

Desarrollo y Herramientas

Estructura Bsica de un Programa


; Funcion de Programa ---------------------------------------------------------------.nolist
.include
.list
;==========================================================
; Declaraciones
.def temp=16
;==========================================================
; Inicio de Programa
rjmp Init
; Primera Linea ejecutada
;==========================================================
Init:
ldi temp,0bxxxxxxxx ; Setear como entrada o salidas el puerto B
out DDRB,temp
ldi temp,0bxxxxxxxx ; Setear como entrada o salidas el puerto D
out DDRD,temp
ldi temp,0bxxxxxxxx ; Setear como Pull-ups para las entradas del puertoB
out PortB,temp
; Inicilaizar estados de los puertos
ldi temp,0bxxxxxxxx ; Setear como Pull-ups para las entradas del puertoD
out PortD,temp
; Inicilaizar estados de los puertos
;==============================================================
; Cuerpo Programa Principal
Inicio:
<Aqui se escribe el programa Principal>
rjmp Inicio
; Lazo infinito

Estructura Bsica de un Programa


Registros de los puertos

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@ieee.org

S-ar putea să vă placă și