Está en la página 1de 4

1

Programación en DEBUG (27 Junio 2021)

Alberto Soriano, Estudiante Universidad de Cuenca.

Resumen— Daremos un vistazo breve a 3 de los comandos mas instrucciones una por una o de manera corrida, con el objetivo
importantes para la programación de Ensamblador mediante el de encontrar errores o normalmente conocidos como “bugs”,
programa DEBUG de DOS 32bits, analizaremos cada uno de ellos con lo cual podemos depurar o mejor conocido como
y entenderemos su función y como esta es entendida por el
procesador, como segundo tema se tratará la importancia de
“debugging”, de aquí el nombre del programa DEBUG.
aprender ensamblador. El objetivo de usar la herramienta es la de introducir
instrucciones las cuales van a ser interpretadas por el
Palabras clave— 32Bits, Arquitectura, Debug, DOSBOX, microprocesador y finalmente van a ser almacenadas en la
Ensamblador, Intel, Microprocesador, Microcontrolador, memoria, todo esto nos ayudara a practicar con la herramienta
Microinformática, Resumen.
y conocer más sobre ensamblador.
Abstract— We will take a brief look at 3 of the most important
Para iniciar el programa de DEBUG debemos ingresar en el
commands for Assembler programming through the DOS 32bits disco en el cual se encuentra nuestro programa e iniciarlo
DEBUG program, we will analyze each of them and understand desde ahí, cuando se inicie podremos comenzar a usar sus
their function and how it is understood by the processor, as a comandos.
second topic the importance of learn assembler.

Keywords— 32Bits, Architecture, DEBUG, DOSBOX,


Assembler, Intel, Microprocessor, Microcontroller,
Microcomputer, Abstract.

I. INTRODUCCIÓN

E l programa DEBUG junto con DOSBOX nos ayuda a


aprender a programar en ensamblador ya que este crea un
entorno virtual de una consola DOS de 32bits en nuestro
sistema operativo y el programa DEBUG nos ubica en un
entorno seguro de la memoria del computador, aquí podremos
realizar las distintas pruebas y programas para la práctica de
este lenguaje.

Fig. 2. Iniciando DEBUG.

II. COMANDOS DE DEBUG


DEBUG posee varios comandos con los cuales podremos
interactuar con el entorno, la memoria y el microprocesador,
los cuales son los siguientes [1]:
A. Creación de programas y depuración
• A(Assemble): Ensambla un programa usando
instrucciones mnemónicas.
• G(Go): Ejecuta el programa que se encuentra en
memoria.
• R(Register): Monitor de contenido de registro y
banderas.
• P(Ptrace): Proceder pasada la instrucción, seguir
Fig. 1. Programa DOSBOX. procedimiento, o realizar bucle.
• T(Trace): Realizar una sola instrucción.
Este nos permite introducir o escribir pequeños programas • U(Unassemble): Desensamblar memoria en
en ensamblador, con estos DEBUG nos permite ejecutar las mnemónicos de ensamblador.
2

B. Memoria y Manipulación
Aquí podremos ir escribiendo nuestras líneas de código hasta
• C(Compare): Compara un rango de memoria con
finalizar con una línea en blanco, en la cual si presionamos
otro.
ENTER nos regresara a DEBUG, pero estas instrucciones se
• D(Dump): Monitor de contenido de memoria.
quedarán guardadas en el rango utilizado.
• E(Enter): Ingresa bytes en memoria.
• F(Fill): Rellena un rango de memoria con un solo
valor.
• M(Move): Mueve bytes desde un rango de memoria
a otro rango de memoria.
• S(Search): Busca en un rango de memoria un o
varios valores específicos.
C. Misceláneos
• H(Hexarithmetic): Realiza una suma o resta
hexadecimal.
• Q(Quit): Sale del programa DEBUG y regresa a
DOS.
D. Ingreso-Salida
• I(Input): Ingresa un byte en un puerto.
• L(Load): Cargar datos desde el disco. Fig. 4. Ingresando sentencias de código y finalizando.

• O: Envía un byte a un puerto.


• N(Name): Crea un nombre de archivo para ser IV. COMANDO R (REGISTER)
usado por el comando L y W. El comando R es usado para realizar acciones con los registros
• W(Write): Escribe los datos desde la memoria al y las banderas. Con eso podemos mostrar el contenido de cada
disco. uno, cambiar su valor y ver la siguiente instrucción a ser
ejecutada.
Formatos de comando:
III. COMANDO A (ASSEMBLE) • R
Nos permite introducir instrucciones o sentencias en • R (registro)
ensamblador, con esto nos permite crear programas. Tabla. 2. Ejemplos Comando R.
Formatos de comando: Ejemplo Descripción
• A R Monitor que contiene todos los registros.
• A (dirección) R IP Monitor que contiene el valor de IP y permite
cambio de valor.
Si no se ingresa ninguna dirección, este asumirá la dirección R CX Monitor que contiene el valor de CX y permite
que se encuentra en CS. cambio de valor.
RF Monitor que muestra todas las banderas y
Tabla. 1. Ejemplos Comando A. permite cambio de valor de todas las banderas.
Ejemplo Descripción
A Ensambla desde la dirección actual. Registros:
A 100 Ensambla en CS:100h. • AX = Acumulador principal, es utilizado para
A DS:2000 Ensambla en DS:2000h. operaciones de entrada/salida y con mayor frecuencia
para operaciones aritméticas.
Cuando se presione ENTER el programa DEBUG nos • BX = Registro de base, es el único registro de
mostrara una línea con la dirección del segmento- propósitos generales puede usarse tanto para
desplazamiento. direccionamiento como para calculo.
• CX = Registro contador, puede usarse para iterar o
valor de repeticiones de un ciclo, también se puede
realizar cálculos con él.
• DX = Registro de datos, su puede usar para
entrada/salida, operaciones de
multiplicación/división.
• SP = Apunta al inicio de la pila IP y proporciona un
valor de desplazamiento que refiere a la palabra
actual.
• BP = Referencia de parámetros, datos y direcciones de
la pila.
Fig. 3. Ingresando comando A 100.
3

• SI = Se usa para operaciones con cadenas, se relaciona Se tiene que inicializar la variable N, con el nombre del
con DS archivo, y se usa BX y CX para seleccionar el número de
• DI = Registro índice destino, de igual manera se usa bytes.
para operaciones con cadenas, se relaciona con ES. Tabla. 4. Ejemplos Comando W.
• DS = Dirección inicial de un segmento de datos de Ejemplo Descripción
W Escribe el archivo con el número de bytes de
programa, este registro junto con un desplazamiento
BX:CX comenzando en CS:100.
genera una referencia de localidad. W0 Escribe el archivo con los mismos bytes desde
• ES = Maneja el direccionamiento de memoria. CS:0.
• SS = Permita la colocación de memoria de una pila, W DS:0200 Escribe el archivo con los mismos bytes desde
para almacenamiento temporal de direcciones y DS:0200.
datos.
• CS = Dirección inicial de segmento de código de un
programa en el registro.
• IP = Registro apuntador de instrucciones, contiene el
desplazamiento de dirección de la siguiente
instrucción a ejecutar.

Banderas:

Tabla. 3. Banderas comando R.


Activa No Activa
OV = Desbordado NV = No Desbordado
DN = Dirección Inferior UP = Dirección Superior
EI = Interrupciones Habilitadas DI = Interrupciones
Deshabilitadas
NG = Señal de Bandera PL = Señal de Bandera Positiva
Negativa
ZR = Cero NZ = No Cero Fig. 6. Ejemplo uso comando W.
AC = Transporte Auxiliar NA = No Transporte Auxiliar
PO = Paridad Impar PE = Paridad Par VI. COMENTARIOS
CY = Transporte NC = No Transporte
Analizando la información obtenida del video, logramos
entender la importancia que tiene el lenguaje ensamblador
en todo el ambiente de programación sea cualquiera en la
capa en la cual realices los programas, esto es muy
importante ya que todos los lenguajes de programación de
alguna u otra manera siempre terminan transformando el
código que escribimos en el lenguaje ensamblador ya que
esta es la única manera que tenemos para comunicarnos con
el microprocesador y poder enviar las instrucciones que
deseamos realzar.
Por ejemplo el lenguaje C y C++ tienen en común que su
compilador es en C, pero como un leguaje puede compilarse
con su propio lenguaje, es debido a que este C se ha
realizado en Ensamblador y permite que el código de C y
C++ pase a Ensamblador, por otra parte podemos ver que
un lenguaje de más alto rango también tiene como
compilador C y este como ya sabemos pasa a Ensamblador,
Fig. 5. Ejemplo uso comando R.
por ende sabemos que todo el código que escribamos
siempre va a pasar a Ensamblador en algún punto de su
V. COMANDO W (WRITE) compilado, de aquí la importancia de conocer este lenguaje
El comando W guarda el programa en el archivo con el ya que es el más puro y la base para el funcionamiento de el
nombre indicado en el comando N. Se necesita especificar el resto de lenguajes en los cuales trabajamos mas
numero de bytes que ocupa el programa, es idéntico al comúnmente.
comando L.
Formatos de comando:
• W
• W (dirección)
• W (dirección, comienzo, primer sector, numero)
4

REFERENCIAS
[1]B. Bray, Microprocesadores Intel, 2nd ed. p. 45.

[2]Petice-Hall, "Using Debug", Petice-Hall.

[3]Apuntes de Lenguaje Ensamblador, 1st ed. 2021, p. 5.

[4]"¿Por qué enseñar a programar en ensamblador?", Youtube.com, 2019.


[Online]. Available:
https://www.youtube.com/watch?app=desktop&v=deMrt_3hkIw&t=303s&ab
_channel=ProfesorRetroman. [Accessed: 28- Jun- 2021].

También podría gustarte