Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

INSTITUTO TECNOLÓGICO DE

CIUDAD MADERO

Maestra: Guadalupe Martínez Jauregui

Alumno: Jose Eduardo Vallejo Lopez

Número de Control: 21070037

Proyecto: Unidad 1. Introducción al Lenguaje Ensamblador

Horario: 9:00-10:00

1
Unidad 1. Introducción al lenguaje ensamblador

1.1 Importancia de la programación en lenguaje ensamblador.


La importancia del lenguaje ensamblador es principalmente que se trabaja directamente
con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de
este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en
los lenguajes de alto nivel no lo pueden realizar.

Ejemplo: Programar en lenguaje ensamblador puede ser esencial para el desarrollo de


sistemas operativos o controladores de dispositivos, donde se requiere un control preciso
del hardware.

Aplicación: Desarrollo de firmware para dispositivos integrados, controladores de


hardware de bajo nivel, optimización extrema de código.

1.2 El procesador y sus registros internos


El procesador de una computadora es el componente central encargado de realizar todas
las operaciones de cálculo y control en una máquina. Los registros internos son pequeñas
áreas de almacenamiento de datos dentro del procesador que desempeñan un papel
fundamental en la ejecución de las instrucciones del programa.

Registro de Instrucción (IR - Instruction Register): Almacena la instrucción actual que


se está ejecutando. El procesador lee la instrucción desde la memoria principal y la
almacena en el IR antes de decodificarla y ejecutarla.

Contador de Programa (PC - Program Counter): Mantiene la dirección de memoria de


la siguiente instrucción a ejecutar. Después de ejecutar una instrucción, el PC se
incrementa para apuntar a la siguiente instrucción en la secuencia.

Registro de Datos (DR - Data Register): Almacena temporalmente datos que se están
procesando o transfiriendo dentro del procesador. Puede ser utilizado para operaciones
aritméticas y lógicas.

2
Registro de Acumulador (ACC - Accumulator): Es un registro especial que a menudo
se utiliza en operaciones aritméticas. Es el lugar donde se almacenan resultados
parciales y finales de cálculos.

Ejemplo: En la arquitectura x86, los registros internos incluyen EAX, EBX, ECX, EDX,
entre otros, que se utilizan para operaciones aritméticas y de manipulación de datos.

Aplicación: Realizar cálculos matemáticos, mover datos en la memoria y controlar el flujo


de un programa.

Figura 1 Registros Generales

1.3 La memoria principal (RAM)

La memoria principal o primaria, es aquella memoria de un ordenador, donde se


almacenan temporalmente tanto los datos como los programas que la CPU está
procesando o va a procesar en un determinado momento. Por su función, es una amiga
inseparable del microprocesador, con el cual se comunica a través de los buses de datos.

Ejemplo: Almacenar variables y datos temporales en la memoria RAM para que puedan
ser accedidos y modificados rápidamente durante la ejecución de un programa.

Aplicación: Todos los programas en ejecución, incluyendo sistemas operativos y


aplicaciones, utilizan la RAM para almacenar datos y código.

3
Figura 2 Memoria Ram

1.4 El concepto de interrupciones

Las interrupciones de mayor prioridad se manejan antes que las de menor prioridad. Esto
garantiza que los eventos críticos se aborden primero. La ISR es un fragmento de código
especializado que se ejecuta en respuesta a la interrupción. Después de que se haya
manejado la interrupción, se restaura el contexto para que el programa pueda continuar

Estas máquinas de estado determinan qué ISR debe ejecutarse en función del estado
actual del sistema. Esto permite controlar qué interrupciones son atendidas y cuáles se
ignoran en un momento dado. Permiten que un sistema responda rápidamente a eventos
externos sin tener que esperar a que una tarea actual se complete.

Ejemplo: Una interrupción de hardware podría ser generada por un reloj en tiempo real,
mientras que una interrupción de software podría ser provocada por una solicitud de
entrada de usuario.

Aplicación: Manejo de eventos de hardware y software que requieren una respuesta


inmediata, como la entrada del usuario o el control de dispositivos.

4
Figura 3 Interrupciones

1.5 Llamadas a servicios del sistema

Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que
causa que el procesador transfiera el control a un código privilegiado previamente
especificado por el mismo código. Esto permite al código privilegiado especificar donde
va a ser conectado, así como el estado del procesador. El procesador entonces
comienza a ejecutar las instrucciones de código de alto nivel de privilegio, para realizar
la tarea requerida.

Ejemplo: En el sistema operativo Windows, la llamada a la función CreateFile se utiliza


para abrir archivos, mientras que en Linux, la llamada al sistema open realiza una
función similar.

Aplicación: Acceso a servicios del sistema operativo, como la gestión de archivos, la


comunicación de red y la administración de recursos.

Figura 4 Llamadas de Servicios Del Sistema

5
1.6 Modos de direccionamiento

Los llamados modos de direccionamiento son las diferentes maneras de especificar en


informática un operando dentro de una instrucción en lenguaje ensamblador.
Eliminar los modos de direccionamiento más complejos podría presentar una serie de
beneficios, aunque podría requerir de instrucciones adicionales, e incluso de otro
registro. Se ha comprobado que el diseño de CPUs segmentadas es mucho más fácil si
los únicos modos de direccionamiento que proporcionan son simples.
El mainframe IBM System/360disponía únicamente de tres modos de direccionamiento;
algunos más fueron añadidos posteriormente para el System/390.
Cuando existen solo unos cuantos modos, estos van codificados directamente dentro
de la propia instrucción . Sin embargo, cuando hay demasiados modos, a menudo suele
reservarse un campo específico en la propia instrucción, para especificar dicho modo de
direccionamiento.

Ejemplo: El direccionamiento inmediato implica utilizar un valor constante, como cargar


el valor 42 en un registro. El direccionamiento indirecto utiliza un puntero para acceder
a un valor en memoria.

Aplicación: Elegir el modo de direccionamiento adecuado para acceder y manipular


datos en la memoria.

Figura 5 Modos De Direccionamiento


6
1.7 Proceso de ensamblado y ligado

Los archivos fuente de código ensamblador deben estar en formato ASCII


standard. Para esto puede usarse cualquier editor que permita crear archivos sin
formato, e.g. Edlin, Edit, Write, el editor del Turbo
Pascal, Works, Word, WordStar, etcétera. Las declaraciones pueden ser introducidas
en mayúsculas y/o minúsculas. Una buena práctica de programación es poner todas las
palabras reservadas en mayúsculas y todo lo del usuario en minúsculas para fines de
facilidad de lectura del código.
Las sentencias pueden comenzar en cualquier columna, no pueden tener más de 128
caracteres, no se permiten líneas múltiples ni códigos de control, y cada línea debe ser
terminada con una combinación de line-feed y carriage-return. Los comentarios se
declaran con; y terminan al final de la línea.

Ejemplo: Utilizar un ensamblador para traducir un programa en lenguaje ensamblador a


código de máquina y luego un enlazador para combinar varios módulos en un programa
ejecutable.

Aplicación: Creación de ejecutables a partir del código fuente ensamblador y la gestión


de bibliotecas.

Figura 6 Proceso De Ensamblado

7
1.8 Desplegado de mensajes en el monitor

El despliegue de mensajes en un monitor se refiere a la acción de mostrar información o


contenido en la pantalla de un dispositivo de visualización, como una computadora, una
televisión o un monitor de señalización digital. El proceso de desplegar mensajes en un
monitor puede variar según el tipo de dispositivo y el software utilizado, pero en general
implica enviar datos visuales a la pantalla para que los usuarios puedan verlos y
comprenderlos.

Texto en una computadora: Puedes desplegar mensajes en una pantalla de


computadora utilizando software de procesamiento de texto, aplicaciones de
mensajería, correos electrónicos, navegadores web, etc. Simplemente escribes el
mensaje y lo visualizas en la pantalla de tu computadora.

Gráficos y video: Para mostrar imágenes, gráficos o videos en un monitor, puedes


utilizar software de edición de imágenes o reproductores de video. Los juegos y
aplicaciones multimedia también utilizan esta técnica.

Programación y desarrollo de software: Los desarrolladores de software utilizan


interfaces gráficas de usuario (GUI) para mostrar información en monitores. Esto implica
crear ventanas, botones, gráficos y otros elementos visuales que los usuarios pueden
ver y con los que pueden interactuar.

Monitores de señalización digital: En entornos comerciales y de publicidad, se


utilizan monitores de señalización digital para mostrar mensajes, anuncios y contenido
multimedia de manera programada y centralizada.

Ejemplo: Usar instrucciones de salida como printf en lenguaje C o interrupciones de


video en lenguaje ensamblador para mostrar texto o gráficos en la pantalla del monitor.

8
Aplicación: Creación de interfaces de usuario, visualización de información y
retroalimentación para el usuario en aplicaciones y sistemas.

Figura 7 Desplegado de Mensaje en Monitor

También podría gustarte