Want to create interactive content? It’s easy in Genially!

Get started free

INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR

cesarin.201433

Created on March 18, 2025

Start designing with a free template

Discover more than 1500 professional designs like these:

Essential Map

Akihabara Map

Frayer Model

Create Your Story in Spanish

Microcourse: Key Skills for University

Microcourse: Learn Spanish

Choice Board Flipcards

Transcript

INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR

El concepto de interrupciones

La memoria principal (RAM)

El procesador y sus registros internos

Importancia de la programación en lenguaje ensamblador.

tIPOS DE INTERRUPCIONES, EJEMPLOS Y MECANISMO DE MANEJO DE INTERRUPCIONES

DEFINICION E IMPORTANCIA EN LA GESTION DE EVENTOS

El procesador

características, ventajas y desventajas

Lenguajes

REGISTROS

Memoria RAM

MAPEO DE Memoria

INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR

MODOS DE DIRECCIONAMIENTO

LLAMADAS A SERVICIOS DEL SISTEMA

DESPLEGADO DE ENSAMBLADO Y LIGADO

PROCESO DE ENSAMBLADO Y LIGADO

PROCESO DE LIGADO Y HERRAMIENTAS DE ENSAMBLADO

EJEMPLO E INTERPRETACION DE RESULTADOS

DEFINICIÓN, INMEDIATO Y DIRECTO E INDIRECTO

DEFINICIÓN, CATEGORÍAS

RELATIVO Y BASADO EN REGISTROS

USO DE INTERRUPCIONES

LLAMADAS A SERVICIOS

PROCESOS

REFERENCIAS

DEFINICION

Las llamadas al sistema son interfaces que permiten que un programa solicite servicios directamente del sistema operativo, como manejo de archivos, control de hardware o administración de memoria.

CATEGORÍAS
  • Entrada/Salida: Maneja dispositivos como teclado, pantalla o archivos.
  • Gestión de procesos: Permite crear, finalizar o suspender procesos.
  • Gestión de memoria: Controla la asignación de memoria en el sistema.

Ejemplo de Código de Salida en Ensamblador

  • mov ah, 09h indica que se utilizará la función de imprimir cadena.
  • lea dx, mensaje carga la dirección de la cadena que se quiere mostrar.
  • int 21h invoca la interrupción de DOS para realizar la acción deseada.

MAPEO DE MEMORIA

El mapeo de memoria es el proceso mediante el cual el sistema operativo organiza y gestiona el acceso a la memoria principal (RAM) en regiones específicas. Este mecanismo es crucial para que el procesador y los programas trabajen de forma eficiente y segura.

ESTRUCTURA

Segmento de pila (Stack Segment - SS)

  • Gestiona las funciones del programa, incluyendo parámetros, variables locales y direcciones de retorno.
  • Crece y decrece dinámicamente conforme se realizan llamadas a funciones o procedimientos.
Segmento de montón (Heap Segment)
  • Espacio reservado para la asignación dinámica de memoria.
  • Se usa principalmente para objetos y estructuras de datos que se crean y destruyen en tiempo de ejecución.
Región de memoria reservada para el sistema operativo
  • Espacio protegido que contiene el kernel del sistema operativo y sus servicios esenciales.

Segmento de código (Code Segment - CS)

  • Contiene las instrucciones del programa.
  • Es una región de solo lectura para evitar que el código se modifique durante la ejecución.
Segmento de datos (Data Segment - DS) Almacena variables globales, constantes y datos estáticos. Puede ser de solo lectura o lectura/escritura dependiendo de la información.

Proceso de Ligado y Generación de Ejecutables

Herramientas de Ensamblado y Depuración

Ensambladores:

  • NASM: Popular para x86, genera archivos binarios u objetos.
  • GAS: Ensamblador GNU, común en Linux.
  • MASM: Usado en Windows, con extensiones y macros.
Herramientas de Depuración:
  • GDB: Depurador para Linux, inspecciona código y controla la ejecución.
  • OllyDbg: Depurador para Windows, con interfaz gráfica.
  • WinDbg: Depurador de Microsoft, enfocado en análisis de memoria y ensamblador.

Ligado: Combina los archivos objeto generados por el ensamblador en un archivo ejecutable, resolviendo referencias y ajustando direcciones de memoria. Existen dos tipos: estático (bibliotecas incluidas) y dinámico (referencias a bibliotecas externas cargadas en tiempo de ejecución). Generación de Ejecutables: El archivo ejecutable (.exe, .out) es el resultado final del ligado, y contiene todo el código necesario para ser ejecutado por el sistema operativo.

CARACTERÍSTICAS
  • Alta velocidad de ejecución.
  • Uso eficiente de los recursos del hardware.
  • Código más complejo y detallado.
  • Control directo del hardware.
  • Mayor precisión en el manejo de memoria y registros.
  • Menor portabilidad entre distintas arquitecturas.
DESVENTAJAS
VENTAJAS
  • Mayor control del hardware.
  • Optimización del rendimiento.
  • Permite implementar algoritmos complejos de manera eficiente.
  • Ideal para la programación de sistemas embebidos.
  • Mayor dificultad para programar.
  • Mayor probabilidad de errores.
  • Código más difícil de mantener y entender.
  • Menor portabilidad entre plataformas.

TIPOS DE INTERRUPCIONES

Interrupciones por software: Son aquellas programadas por el usuario, es decir, el usuario decide cuando y donde ejecutarlas, generalmente son usadas para realizar entrada y salida. Interrupciones por hardware: Son aquellas que son provocadas por dispositivos externos al procesador su característica principal es que no son programadas, esto es, pueden ocurrir en cualquier momento en el programa.

MECANISMO DE MANEJO DE INTERRUPCIONES

El mecanismo de manejo de interrupciones es un proceso fundamental en la arquitectura de computadoras que permite que el procesador responda de forma inmediata a eventos externos o internos que requieren atención

EJEMPLOS

  • Interrupción del teclado (INT 16h)
  • Interrupción del temporizador (INT 1Ah)
  • Interrupción para manejo de errores del sistema (INT 24h)

PROCESOS

El proceso de ensamblado y ligado son pasos fundamentales en la construcción de programas en lenguaje de ensamblador, que transforman el código fuente en un archivo ejecutable.

  • Análisis Léxico: El código fuente en ensamblador se analiza y se divide en tokens (instrucciones, etiquetas, operadores, etc.), verificando su corrección sintáctica y preparando la estructura interna para el procesamiento posterior.
  • Traducción: El código ensamblador se convierte en una representación intermedia cercana al código máquina, donde las instrucciones se traducen a un formato binario con códigos de operación y direcciones de memoria.
  • Generación de Código Máquina: La representación intermedia se transforma en código máquina ejecutable, resolviendo direcciones y generando un archivo de salida en formato objeto (.obj o .o).

Lenguaje ensamblador

Es un lenguaje que utiliza mnemónicos (palabras clave simbólicas) para representar instrucciones de máquina.Importancia del lenguaje ensambladorSe utiliza principalmente para programación de hardware, sistemas embebidos, drivers y tareas que requieren alto rendimiento.

Lenguajes de bajo nivel

Son aquellos que están más cerca del hardware y requieren un conocimiento profundo del funcionamiento interno del procesador. El lenguaje ensamblador pertenece a esta categoría.

Desplegado de Mensajes en el Monitor

El despliegue de mensajes en el monitor en lenguaje ensamblador se hace generalmente mediante el uso de interrupciones del sistema operativo, que permiten enviar datos al sistema de salida (pantalla). En sistemas DOS o compatibles, la interrupción más común es INT 21h.

Uso de Interrupciones para Salida de Texto

En sistemas DOS, la interrupción INT 21h se usa para realizar diversas operaciones, incluidas la salida de texto en pantalla. Para imprimir un carácter o cadena de texto, se utiliza la función AH = 09h, que imprime una cadena de caracteres terminada en $. Para imprimir un solo carácter, se usa la función AH = 02h.

DEFINICIÓN

DIRECTO

Un modo de direccionamiento especifica cómo se determina la dirección de un operando en la memoria o el valor con el que una instrucción debe trabajar. Existen varios tipos, y cada uno tiene sus ventajas dependiendo de la arquitectura y e l contexto de ejecución.

En el modo directo, la dirección de memoria del operando se especifica directamente en la instrucción. El procesador va a esa dirección para recuperar el valor. La instrucción contiene la dirección de memoria donde se encuentra el operando.

INMEDIATO

INDIRECTO

En este modo, el operando está especificado directamente en la instrucción. No es necesario buscarlo en la memoria ni en un registro; es un valor constante. El operando está presente directamente en el código de la instrucción.

En este modo, la instrucción no contiene directamente la dirección de memoria del operando, sino que contenía una dirección de memoria que apunta a la ubicación del operando La instrucción especifica una dirección de memoria que contiene la dirección del operando..

RELATIVO

EJEMPLOS

En el modo relativo, la dirección de memoria se calcula sumando una constante (generalmente un desplazamiento o "offset") al valor contenido en un registro, generalmente un registro de segmento.

  • Inmediato: El operando está directamente en la instrucción. MOV AX, 5
  • Directo: La dirección de memoria del operando está en la instrucción. MOV AX, [2000h]
  • Indirecto: La dirección del operando está en una ubicación de memoria. MOV AX, [BX]
  • Relativo: La dirección se calcula sumando un desplazamiento a un registro. MOV AX, [BX + 4]
  • Basado en Registros: El operando está en un registro. MOV AX, BX

BASADO

En este modo, la dirección del operando se obtiene utilizando los registros. Los operandos están en registros, y el procesador no necesita acceder a la memoria. El operando se encuentra en un registro, y la dirección es determinada directamente por el contenido del registro.

REFERENCIAS

[1] A. López, "Glosario de tecnología: ¿qué significa lenguaje de bajo nivel?" Infobae, 05 de junio de 2024. [En línea]. Disponible en: https://www.infobae.com/tecno/2024/06/05/glosario-de-tecnologia-que-significa-lenguaje-de-bajo-nivel. [Accedido: 18-mar-2025]. [2] J. Martínez, "Ventajas y desventajas del lenguaje de bajo nivel" Tulenguaje, 11 de febrero de 2009. [En línea]. Disponible en: https://tulenguaje.wordpress.com/2009/02/11/ventajas-y-desventajas-del-lenguaje-de-bajo-nivel. [Accedido: 18-mar-2025]. [3] M. Alanís, "El procesador y sus registros internos" AlanisJessica, 15 de marzo de 2017. [En línea]. Disponible en: https://alanisjessica.blogspot.com/2017/03/unidad1-12-el-procesador-y-sus.html. [Accedido: 18-mar-2025]. [4] "1.4 El concepto de interrupciones," Lenguajes de interfaz. [En línea]. Disponible en: https://ittlenguajesdeinterfaz.wordpress.com/1-4-el-concepto-de-interrupciones/. [Accedido: 19-mar-2025]. [5] "1.7 Llamadas a servicios del sistema," Lenguajes de interfaz. [En línea]. Disponible en: https://ittlenguajesdeinterfaz.wordpress.com/1-7-llamadas-a-servicios-del-sistema/. [Accedido: 19-mar-2025]. [6] "1.8 Modos de direccionamiento," Lenguajes de interfaz. [En línea]. Disponible en: https://ittlenguajesdeinterfaz.wordpress.com/1-8-modos-de-direccionamiento/. [Accedido: 19-mar-2025]. [7] "1.9 Proceso de ensamblado y ligado," Lenguajes de interfaz. [En línea]. Disponible en: https://ittlenguajesdeinterfaz.wordpress.com/1-9-proceso-de-ensamblado-y-ligado/. [Accedido: 19-mar-2025]. [8] "1.10 Desplegado de mensajes en el monitor," Lenguajes de interfaz. [En línea]. Disponible en: https://ittlenguajesdeinterfaz.wordpress.com/1-10-desplegado-de-mensajes-en-el-monitor/. [Accedido: 19-mar-2025].

TIPOS

LLAMADAS AL SISTEMA WINDOWS Y LINUX

  • Comunicaciones: Crear, enviar, recibir y finalizar conexiones.
  • Control de procesos: Crear, ejecutar, finalizar procesos y gestionar memoria.
  • Manipulación de archivos: Crear, abrir, leer, modificar y eliminar archivos.
  • Manipulación de información: Obtener datos del sistema como fecha y hora.
  • Manipulación de periféricos: Solicitar, leer, escribir y liberar periféricos.

Las llamadas a servicios del sistema son interfaces que permiten a los programas interactuar con el núcleo del sistema operativo. Aunque Windows y Linux manejan estas llamadas de forma distinta, ambas siguen principios similares.

EJEMPLOS

DEFINICIÓN

Una interrupción es el rompimiento en la secuencia de un programa para ejecutar un programa especial llamando una rutina de servicio cuya característica principal es que al finalizar regresa al punto donde se interrumpió el programa.

IMPORTANCIA EN LA GESTION DE EVENTOS

La gestión de eventos es crucial en sistemas informáticos, especialmente en entornos que requieren respuestas inmediatas a diversas acciones internas o externas. Los eventos pueden ser generados por hardware o software y su correcta gestión garantiza que el sistema funcione de manera eficiente y segura.

TIPOS Y FUNCIONES DE LOS REGISTROS

Registros de propósito general:

  • AX (Acumulador): Realiza operaciones aritméticas y de E/S.
  • BX (Base): Almacena direcciones base de memoria.
  • CX (Contador): Controla bucles y operaciones repetitivas.
  • DX (Datos): Se usa en operaciones con valores largos.
Registros de segmento:
  • CS (Segmento de código)
  • DS (Segmento de datos)
  • SS (Segmento de pila)
  • ES, FS, GS (Segmentos extra)

Registros de propósito especial:

  • IP (Puntero de instrucción): Indica la dirección de la siguiente instrucción.
  • SP (Puntero de pila): Gestiona la ubicación de la pila.
  • BP (Base pointer): Permite acceder a datos en la pila.

Funciones de los registrosSe utilizan para almacenar datos, direcciones de memoria o resultados temporales durante la ejecución del programa.

¿QUÉ ES EL PROCESADOR?

Un procesador o también conocido también como unidad central de proceso o CPU es una pastilla de silicio que va colocada en el socket o en algunos casos lo encontramos soldado; es uno de los componentes de la computadora que más ha evolucionado, dado a que se les exige a los ingenieros que cada vez ofrezcan mejores procesadores para que las computadoras sean más rápidas y trabajen de forma más eficiente

MEMORIA RAM

La RAM es una memoria de acceso rápido que almacena temporalmente las instrucciones y datos que el procesador necesita ejecutar. Es la tercera memoria más rápida después de los registros del procesador y la memoria caché, pero tiene mayor capacidad que estas últimas.

TIPOS ESPECIFICOS DE RAM

TIPOS DE RAM

  • DRAM: Usa condensadores que requieren refresco constante.
  • RDRAM: Memoria rápida pero costosa, utilizada en procesadores Pentium IV.
  • SDRAM: Sincronizada con el bus del sistema, mejora el rendimiento.
  • DDR SDRAM: Realiza dos transferencias por ciclo de reloj, alcanzando mayores velocidades.
  • SRAM: No necesita refresco, es rápida pero más cara.
  • RAM estática (SRAM): Mantiene los datos mientras tenga energía, no necesita refresco. Es rápida pero costosa.
  • RAM dinámica (DRAM): Necesita ser constantemente refrescada para no perder datos. Es más lenta pero económica.