Want to create interactive content? It’s easy in Genially!
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:
View
Essential Map
View
Akihabara Map
View
Frayer Model
View
Create Your Story in Spanish
View
Microcourse: Key Skills for University
View
Microcourse: Learn Spanish
View
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.
- 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.
- 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.
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.
- 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.
- 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.