Tutorial “Lenguaje Ensamblador”

Lenguaje Ensamblador

El lenguaje ensamblador, o assembler (assembly language en inglés), es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador.

Tema 1: Registros Básicos

Registros de Uso General
AX: Acumulador (AL:AH)
BX: Registro de Base (BL:BH)
CX: Registro de Contador (CL:CH)
DX: Registro de datos (DL:DH)

Registros de segmento
DS: Registro del segmento de datos
ES: Registro del segmento extra
SS: Registro del segmento de pila
CS: Registro del segmento de código

Registros punteros
BP: Registro de apuntadores base
SI: Registro índice fuente
DI: Registro ìndice destino

Registros especiales
SP: Registro apuntador de la pila
IP: Registro apuntador de la siguiente instrucción
F: Registro de banderas (8 bits)

Tema 2

Overflow
NV (Apagado): No hay desbordamiento
OV (Encendido): Si lo hay

Direction
UP: Hacia adelante
DN: Hacia atras

Interrupts
DI: Desactivadas
EI: Activadas

— Sign
PL: Positivo
NG: Negativo

Zero
NZ: No es cero
ZR: Si lo es

Auxilary Carry
NA: No hay acarreo auxiliar
AC: Hay acarreo auxiliar

Parity
PO: Impar
PE: Paridad par

Carry
NC: No hay acarreo
CY: Si lo hay

Tema 3: Sintaxis

La sintaxis de un programa en Lenguaje ensamblador consta de la siguiente manera

Instrucción Operador 1, Operador 2, Operador 3, …

  • Donde el nombre de la instrucción está formada por 2 o 3 letras.
  • Donde los operadores puedes ser registros, constantes y direcciones de memoria
  • La cantidad de operadores dependerá de la instrucción

Ejemplo:

Si nosotros queremos copiar un valor de una parte de la memoria a la parte baja del Registro AX (AL) deberíamos de hacer lo siguiente:

MOV AL, [1000]

Un operador si es un valor de dirección de memoria debe de especificarse entre corchetes.

*El post se irá alimentando poco a poco, se les avisará cuando exista una nueva entrada.