Está en la página 1de 37

PROGRAMACIÓN EN

LENGUAJE ENSAMBLADOR

M.C. Juan Pablo Avendaño Santiago


Lenguaje ensamblador
• El lenguaje ensamblador (asm), es un lenguaje de programación de
bajo nivel, que consiste en un conjunto de instrucciones básicas.
• Cada arquitectura de procesador tiene su propio lenguaje
ensamblador que usualmente es definida por el fabricante de
hardware.
Conceptos básicos
Directivas
Directivas para definir espacios de
memoria
Directivas para definir espacios
de memoria
Directivas para definir espacios
de memoria
Directivas para definir
espacios de memoria
Vectores de interrupciones en un atmega16
Mapa de registros I/O
Registro de estado
• El registro de estado (SREG) es parte de los registros I/O, por lo que su
acceso puede hacerse con instrucciones IN y OUT.
• Este registro es importante debido a que refleja el estado de la CPU y
no de algún recurso específico.
• Se ubica en la dirección 0x3F, después de un reinicio, todos los bits
tienen el valor de 0.
Registro de estado
• Bit 7-I: Habilitador global de interrupciones.
• Bit 6 -T: Bit de almacenamiento para copias.
• Bit 5 -H: Bandera de acarreo en el nibble bajo.
• Bit 4 -S: Bit de signo.
• Bit 3 -V: Bandera de sobrepujo para operaciones en
complemento 2.
• Bit 2 -N: Bandera de negativo.
• Bit 1 -Z: Bandera de cero.
• Bit 0 -C: Bandera de acarreo.
Registros de propósito
específico - espacio I/O
Registros de propósito
específico - espacio I/O
Registros de propósito
específico - espacio I/O
Registros de propósito
específico - espacio I/O
Registros de propósito
específico - espacio I/O
Lenguaje Ensamblador
Un programa en Ensamblador puede incluir:
• Instrucciones: Elementos del lenguaje que se traducen a código
máquina. Cada instrucción tiene su opcode y sus operandos. El
procesador ejecuta las instrucciones para determinar el
comportamiento de un sistema.
• Directivas: Elementos del lenguaje que ayudan en la organización del
programa, indicando aspectos como la ubicación del código o
definiciones. Las directivas no generan código máquina, son
elementos propios de la herramienta utilizada para ensamblar un
programa.
Sumas y restas

Las que trabajan con palabras se ejecutan en 2 ciclos de reloj, las demás solo en 1 ciclo de reloj.
Multiplicaciones enteras y fraccionales

Todas se ejecutan en 2 ciclos de reloj


Instrucciones Lógicas Binarias

Todas se ejecutan en 1 ciclo de reloj


Instrucciones Para Enmascarar
Información

Todas se ejecutan en 1 ciclo de reloj y modifican a las banderas Z, C, N, V y S.


Instrucciones Aritméticas o Lógicas
Unarias

Todas se ejecutan en 1 ciclo de reloj.


Saltos incondicionales

Los saltos relativo e indirecto se ejecutan en 2 ciclos de reloj, el salto absoluto en 3


Instrucciones Para el manejo de
Rutinas

Las llamadas relativa e indirecta a rutinas se ejecutan en 3 ciclos de reloj, la llamada absoluta y los
retornos se ejecutan en 4
Instrucciones para la comparación de
datos

Modifican las banderas Z, C, N, V, H y S, se ejecutan en un ciclo de reloj.


Instrucciones Condicionales

Pueden tardar 1 o 2
ciclos de reloj.
“Saltitos” Condicionales

Pueden tardar 1 , 2 o 3 ciclos de reloj.


Instrucciones de transferencia de
Datos
Transferencia entre registros

Transferencia de una constante a un registro


Transferencias entre memoria de
datos y registros (cargas)
Transferencias entre registros y memorias
de datos (almacenamientos)
Transferencia entre memoria de datos
y registro (Acceso a la Pila)

Transferencias entre Registros I/O y registros de propósito general


Instrucciones para el manejo y
evaluación de bits

Desplazamiento y
rotaciones
Instrucciones para manipular los bits
del registro Estado
Instrucciones Especiales

También podría gustarte