Está en la página 1de 15

UNIVERSIDAD AUTONOMA DE CHIAPAS

Campus IV

Ingenieria en Desarrollo Y Tecnologías de Software

Materia:
Traductores de Bajo Nivel

Tema:
Investigación Final

Nombre:
Moreno Solorzano José Miguel
Hau Orduña Seac Sing de Jesus
Laguna Marroquin Eli

TAPACHULA, CHIAPAS; MAYO – 8, 2022


índice
Introducción..................................................................................................................................... 2
Interrupciones ................................................................................................................................. 3
Direccionamiento ........................................................................................................................... 3
Procedimientos ............................................................................................................................... 4
Macros ............................................................................................................................................... 4
Tipos de ensambladores .............................................................................................................. 5
Ensambladores cruzados ........................................................................................................ 5
Ensambladores residentes ...................................................................................................... 5
Macroensambladores ................................................................................................................ 6
Macroensambladores ................................................................................................................ 6
Ensambladores de una fase .................................................................................................... 6
Registros .......................................................................................................................................... 6
Segmentos ....................................................................................................................................... 7
Directivas.......................................................................................................................................... 8
Referencias .................................................................................................................................... 10
Anexos ............................................................................................................................................ 11
Introducción

Este informe de investigación tiene como finalidad recapitular todo lo que se ha


aprendido a lo largo de la materia de traductores de bajo nivel. Este informe también
va de acuerdo al proyecto final que la materia maneja, aquí se mencionaran todos
los componentes que fueron utilizados para desarrollar el proyecto. El siguiente
informe se encuentra citado mediante el formato APA sexta generación.

2
Interrupciones

Una interrupción es una instrucción que detiene la ejecución de un programa para


darle tiempo de procesador a otro proceso más importante. El utilizar una
interrupción en ensamblador permite al procesador llevar a cabo funciones
especiales predefinidas. Por ensamblador llamadas servicios, las cuales permiten
entre otras cosas el desplegar información. Las interrupciones se separan en dos
tipos, que son de DOS (dependientes del sistema operativo) y de BIOS
(dependientes del hardware) (cfr. Autor desconocido, 2016, p.1).

Cuando un periférico desea acceder a un recurso, envía un pedido de interrupción


al procesador para llamar su atención, los periféricos cuentan con un número de
interrupción que se denomina IRQ (Interrupt Request). Para utilizar una interrupción
en ensamblador se utiliza la instrucción int seguida del número de la interrupción,
por ejemplo: int 10h (cfr. Autor desconocido, 2016, p.1).

Direccionamiento

Una instrucción de máquina es una instrucción ejecutable por la CPU de la


computadora. Una instrucción debe incluir un operador y el objeto de la operación:
el operando. Para el conjunto de instrucciones de Procesadores Intel, algunas
instrucciones no tienen operandos y otras tienen múltiples operandos (mayor que
1). (cfr. Autor desconocido, 2018, p.2).

El llamado modo de direccionamiento significa que el código que escribimos debe


indicar dónde está el operando, para que la CPU pueda encontrar correctamente el
operando y ejecutar esta instrucción. El operando de una instrucción se puede
incluir directamente en la instrucción sin buscar en otro lado; también se puede
colocar en un registro, si se coloca en un registro, simplemente obtenga el registro
directamente; el problema es que el operando se coloca en la memoria En, debido
a que la formación de direcciones de memoria es relativamente complicada, no
puede escribir directamente una dirección en el rango de direcciones accesible de
la memoria, debe formar la dirección de memoria de acuerdo con ciertas reglas, y

3
algunos de los datos en la memoria se pueden tomar de esta memoria. El llamado
método directo, algunos necesitan calcular su dirección de almacenamiento, y luego
obtener los datos en la memoria a través de la dirección, el llamado método indirecto
(cfr. Autor desconocido, 2018, p.3).

Procedimientos

Un procedimiento es una secuencia de instrucciones que en conjunto llevan a cabo


una tarea específica. En programación un procedimiento es un segmento de código
que cuenta con instrucciones a las cuales se puede acceder desde cualquier parte
del programa y una vez se termina la ejecución de estas, el programa continuo con
su ejecución normal, tomando el control la siguiente línea después de la llamada al
procedimiento. Los procedimientos tienden a ser grupos de instrucciones que se
necesitara ejecutar más de una vez dentro de un programa, ya que un
procedimiento puede ser llamado en cualquier momento durante la ejecución del
programa principal, la cantidad de veces que sea necesario sin necesidad de
reescribir el código (cfr. Pérez, 2015, p.1).

Macros

Una macro es un nombre que define un conjunto de instrucciones que serán


sustituidas por la macro cuando el nombre de ésta aparezca en un programa
(proceso denominado expansión de macros) en el momento de ensamblar el
programa. Las instrucciones de macros se pueden guardar en el programa mismo
o en un archivo separado que el programa pueda identificar (cfr. Estrada, 2017, p.1).

Una macroinstrucción es una instrucción compleja, formada por otras instrucciones


más sencillas. Esto permite la automatización de tareas repetitivas. Además, tiene
que estar almacenada, el término no se aplica a una serie de instrucciones escritas
en la línea de comandos enlazadas unas con otras por redirección de sus resultados
o para su ejecución consecutiva (cfr. Estrada, 2017, p.1).

4
Las macros suelen almacenarse en el ámbito del propio programa que las utiliza y
se ejecutan pulsando una combinación especial de teclas o un botón especialmente
creado y asignado para tal efecto. La diferencia entre una macroinstrucción y un
programa es que en las macroinstrucciones la ejecución es secuencial y no existe
otro concepto del flujo de programa que, por tanto, no puede bifurcarse (cfr. Estrada,
2017, p.2).

Tipos de ensambladores

Ensambladores cruzados

Se denominan así a los ensambladores que se utilizan en una computadora que


posee el procesador diferente al que tendrán las computadoras donde se va a
ejecutar el programa objeto producido. El empleo de este tipo permite aprovechar
el soporte de medios físicos y de programación que ofrecen las maquinas potentes
para desarrollar programas que luego los van a ejecutar sistemas muy
especializados en determinados tipos de tareas.

Ensambladores residentes

Son aquellas que permanecen en la memoria principal de la computadora y cargar


para su ejecución al programa objeto producido. Este tipo de ensamblador tiene la
ventaja de que se puede comprobar inmediatamente el programa sin necesidad de
transportarlo de un lugar a otro, como se hacía en crossassembler, y sin necesidad
de programas simuladores. Sin embargo, puede presentar problemas de espacio
de memoria, ya que el traductor ocupa espacio que no puede ser utilizado por el
programador.

5
Macroensambladores

Al programa que indica al intérprete de instrucciones de la CPU como debe actuar


se le denomina microprograma. El programa que ayuda a realizar esta
microprograma se llama micro ensamblador. Existen procesadores que permiten la
modificación de sus microprogramas, para lo cual se utilizan macroensambladores.

Macroensambladores

Son ensambladores que permiten el uso de macroinstrucciones. Debido a su


potencia, normalmente son programas robustos que no permanecen en memoria
una vez generado el programa objeto. Puede variar la complejidad de estos,
dependiendo de las posibilidades de definición y manipulación de las
macroinstrucciones, pero normalmente son programas bastante complejos.

Ensambladores de una fase

Leen una línea y la traducen directamente para producir una instrucción de lenguaje
maquina o la ejecuta si se trata de una pseudosinstrucción. Se construye la tabla de
símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.
Debido a su forma de traducción estos ensambladores obligan a definir los símbolos
antes de ser empleados para que, cuando aparezca una referencia a un
determinado símbolo en una instrucción, se conozca la dirección de dicho símbolo
y se pueda traducir de forma correcta.

Registros

La Unidad Central de Proceso (CPU, por sus siglas en inglés) tiene 14 registros
internos cada uno de 16 bits. Los primeros cuatro, AX, BX, CX y DX, son de uso
general y se pueden usar también como registros de 8 bits. Es decir, AX se puede
dividir en AH y AL (AH es el byte alto, high, y AL es el byte bajo, low) Lo mismo es
6
aplicable a los otros tres (BX en BH y BL, CX en CH y CL y DX en DH y DL).

El SS tiene la tarea exclusiva de manejar la posición de memoria donde se


encuentra la pila (stack) Esta es una estructura usada para almacenar datos en
forma temporal, tanto de un programa como de las operaciones internas de la
computadora personal (PC, por sus siglas en inglés) En términos de operación
interna, la CPU usa este segmento para almacenar las direcciones de retorno de
las llamadas a rutinas. El registro de segmentos más importante es el CS o
segmento de código. Es aquí donde se encuentra el código ejecutable de cada
programa, el cual está directamente ligado a los diferentes modelos de memoria.

El registro BP (base pointer) se usa para manipular la pila sin afectar al registro de
segmentos SS. Es útil cuando se usa interfaz entre lenguajes de alto nivel y el
ensamblador. Puesto que dicha interfaz se basa en el concepto de la pila BP, nos
permite acceder parámetros pasados sin alterar el registro de segmento SS. Los
registros SI y DI son útiles para manejar bloques de cadenas en memoria, siendo el
primero la índice fuente y el segundo el índice destino. En otras palabras, SI
representa la dirección donde se encuentra la cadena y DI la dirección donde será
copiada (cfr. Lopez. 2019, p.3).

Segmentos

Un segmento es un área especial en un programa que inicia en un límite de párrafo.


Se puede tener cualquier número de segmentos; para direccionar un segmento en
particular basta cambiar la dirección en el registro del segmento apropiado. los tres
segmentos principales son los segmentos de código, de datos y de la pila (cfr. Autor
desconocido, 2013, p.1).

El segmento de código (CS) contiene las instrucciones de máquina que son


ejecutadas. Por lo común, la primera instrucción ejecutable está en el inicio del
segmento y el sistema operativo enlaza a esa localidad para iniciar la ejecución del
programa.

7
Directivas

Las directivas de ensamblador son instrucciones que le dicen al ensamblador que


haga algo. Se utiliza para configurar el programa o registrar la dirección durante el
montaje. Por ejemplo, ORG 0100h le dice al ensamblador que ensamble todo el
código subsiguiente comenzando en la dirección 0100h. DS. Define una cantidad
de espacio libre.

8
Conclusión

Mediante la realización de informes de investigación, diversos usuarios adquieren


la capacidad de enriquecer sus conocimientos mediante la búsqueda en distintas
fuentes de información, puesto que, de esta manera, reúnen ideas las cuales
facilitan una mejor comprensión del tema sobre el cual desean aprender. Al concluir
este informe, pude recordar todos los conceptos sobre ensamblador que aprendí a
lo largo de la materia, y gracias a esto, ahora tengo una mejor percepción de lo que
es trabajar en bajo nivel.

9
Referencias

Gallard Corxzr Richard (2016), Ensamblador, recuperado el 8 de mayo de 2022 de:


https://isaacantonio95.wixsite.com/tiai95/single-post/2016/05/03/macros-en-
ensamblador
Autor desconocido (2019), Conceptos assamb, recuperado el 8 de mayo de 2022
de: https://ittlenguajesdeinterfaz.wordpress.com/1-4-el-concepto-de-
interrupciones/
Hernández López Arturo (2010), low level, recuperado el 8 de mayo de 2022 de:
https://www.uaeh.edu.mx/docencia/P_Presentaciones/huejutla/sistemas/teoria_co
muni/segmentos.pdf

10
Anexos

Se ejecuta el programa, y lo primero que encontramos es el menú principal del


proyecto, con el que podremos realizar las funciones principales de la manipulación
de archivos

Al elegir la primera opción, aparecerá el siguiente mensaje en pantalla, esto para


que el programa espere la interacción del usuario con el teclado para que el
archivo no parezca como que si no hiciera nada.

11
Una cosa que hay que aclarar es que los archivos que son manipulados con este
programa son guardados por defecto en la carpeta de GUI TURBO ASSAMBLER.

Dicho esto, procedemos a verificar que la primera opción funcione. Y efectivamente


lo hace, ya que el archivo fue creado, este archivo lleva como nombre “PROFIN”.

Ahora, lo correcto sería continuar con la opción 2, pero para un mejor uso, primero
verificaremos la 3, esto porque el archivo que en la opción 1 se creo, no contiene
ningún texto, entonces primero usaremos la opción de editar para añadir texto, y
posteriormente usaremos la opción de abrir para verificar que la opción de editar un
archivo funciona.
Al abrir la opción 3, aparece el siguiente texto, en donde podemos escribir el texto
que queremos que sea guardado en el archivo

12
Ahora procedemos a usar la opción 2 para verificar que el texto previamente
ingresado, se guardó en el archivo. Y efectivamente fue guardado.

Procedemos con la última opción del proyecto, la cual corresponde a eliminar el


archivo que estamos utilizando. Presionamos sobre ella, y el archivo será eliminado.
Esto se puede confirmar de 2 maneras. La primer es buscarlo en la carpeta donde
originalmente fue creado, y apreciaremos que ya no está.

13
La otra forma de comprobarlo es presionar la opción de abrir el archivo, ya que si
lo hacemos, no aparecerá nada en pantalla, haciendo referencia a que el archivo
ya no existe

14

También podría gustarte