Está en la página 1de 6

UNIVERSIDAD MAYOR DE S

AN ANDRES
FACULTAD DE CIENCIAS PURAS Y NATURALES
CARRERA DE INFORM

ATICA
Asignatura: ASSEMBLER INF-153
LABORATORIO 1
Catedr atico: Ms.C. Carlos Mullisaca Choque
12 de agosto de 2009

Indice
1. DEBUG 1
1.1. Caractersticas del DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Comandos de DEBUG 2
3. Pr acticas en laboratorio 2
3.1. Introducir un programa simb olico en ensamblador . . . . . . . . . . . . . . . . . . . . . . . 2
3.2. Obtener el n umero de versi on del DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3. Obtener la fecha actual( INT 21h, funci on 2Ah) . . . . . . . . . . . . . . . . . . . . . . . . 3
3.4. Vericaci on del tama no de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.5. Vericaci on de la identicaci on del modelo (FFFFEH) . . . . . . . . . . . . . . . . . . . . 4
3.6. Vericaci on de la fecha en el ROM BIOS (FFFF5H) . . . . . . . . . . . . . . . . . . . . . 4
3.7. Guardar un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.8. Cargar un archivo a la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.9. Programa para Imprimir los siguientes n umeros: -0-1-2-3-4-5-6-7-8-9 . . . . . . . . . . . . 5
3.10. Programa para desplegar la siguiente frase: HOLA ASSEMBLER . . . . . . . . . . . . . 6
1. DEBUG
El programa DEBUG, es una utilera que realiza tres tareas:
1. Ver el contenido de las memorias ROM y RAM
2. Ejecutar un programa, en su totalidad o una instruccion a la vez
3. Ensamblar o ejecutar programas
1.1. Caractersticas del DEBUG
Despliega todo el c odigo del programa y los datos en formato hexadecimal.
S olo puede crear archivos con extensi on .COM, y no pueden ser mayores a 64 kb y debe comenzar
en el desplazamiento (offset)0100H (Direcci on de memoria donde se cargan los programas del tipo
.COM).
1
2. Comandos de DEBUG
A Ensamblar instrucciones simb olicas y pasarlas a c odigo m aquina
D Mostrar el contenido de un area de memoria
E Introducir datos en memoria, iniciando en una localidad especca
G Correr el programa ejecutable que se encuentra en memoria
N Nombrar un programa
P Proceder o ejecutar un conjunto de instrucciones relacionadas
Q Salir de la sesi on con DEBUG
R Mostrar el contenido de uno o mas registros
T Rastrear la ejecuci on de una instrucci on
U Desensamblar c odigo m aquina y pasarlo a c odigo simb olico
W Escribir o grabar un programa en disco
3. Pr acticas en laboratorio
3.1. Introducir un programa simb olico en ensamblador
Uso de comando A para introducir un programa.
a). Inicializar la direcci on de inicio en el segmento de c odigo con desplazamiento 100h
A 100h [Enter]
b). Ingrese el siguiente programa:
MOV AL,25 [Enter]
MOV BL,32 [Enter]
ADD AL,BL [Enter]
NOP [Enter, Enter]
Nota: El segundo [Enter] de la ultima instrucci on(NOP), indica a DEBUG que ya no hay mas instruc-
ciones por ingresar. Al terminar DEBUG debe mostrar lo siguiente:
xxxx:0100 MOV AL,25
xxxx:0102 MOV BL,32
xxxx:0104 ADD AL,BL
xxxx:0106 NOP
c). Examinar el lenguaje m aquina generado con el comando U, indicar a DEBUG las localidades de
la primera y ultima instrucci on que se quiere ver, en este caso, 100h y 106 h. Teclee :
U 100,106 [Enter]
Nota : 100 indica en donde inicia el programa, y 106 indica en donde est a la ultima instrucci on
(xxxx:106 NOP) La pantalla debe mostrar columnas para la localidad, el c odigo de m aquina y el
c odigo simb olico:
xxxx:0100 B025 MOV AL,25
xxxx:0102 B332 MOV BL,32
xxxx:0104 00D8 ADD AL,BL
xxxx:0106 90 NOP
Rastrear la ejecuci on del programa:
Introducir R para desplegar los registros y la primera instrucci on,
y despu es T de manera sucesiva para rastrear las instrucciones subsecuentes.
Cuando llegue a NOP de la localidad 106h, presione Q para salir de la ejecuci on.
2
3.2. Obtener el n umero de versi on del DOS
La instrucci on que entrega el n umero de versi on es INT 21h del DOS, funci on 30h.
a). Ingrese el comando
A 100 (de DEBUG )
b). Ingrese las instrucciones en ensamblador:
MOV AH,30
INT 21
NOP (seguido por un [enter] adicional )
Para rastrear la ejecuci on de las instrucciones, primero ingresar R para ver los registros y T para rastrear
MOV, ingresar P(proceder) para ejecutar toda la rutina del DOS. El proceso termina con la instrucci on NOP.
El n umero principal de la versi on del DOS se encuentra en AL , como X en DOS X.20, y en AH el n umero
secundario de la versi on, como 14H(o 20) en DOS X.20. Presionar Q para salir.
3.3. Obtener la fecha actual( INT 21h, funci on 2Ah)
MOV AH,2A
INT 21
NOP
Para ejecutar seguir los siguientes pasos:
Ingresar R para mostrar los registros,
T para ejecutar MOV,
P(proced) para INT,
la operaci on se detiene en NOP.
Presionar Q, para salir.
Los registros muestran esta informaci on:
AL : Da de la semana(0=Domingo)
CX : A no(en hexadecimal, por ejemplo, 07DH = 1997)
DH : Mes (01 a 12)
DL : Da del mes (01 a 31)
3.4. Vericaci on del tama no de la memoria
El tama no de la memoria se puede vericar en las Localidades : 413H y 414H Teclear:
D 40:13 [ Enter ]
El despliegue(depende de cada PC):
0040:0013 .. .. .. xx xx
Los primeros dos bytes mostrados en el desplazamiento 0013H son los KB de memoria en hexadecimal,
con los bytes en secuencia inversa. Ejemplo:
HEXADECIMAL INVERSO HEXADECIMAL CORREGIDO VALOR DECIMAL(K)
00 02 02 00 512
80 02 02 80 640
3
3.5. Vericaci on de la identicaci on del modelo (FFFFEH)
Teclear:
D FFFF:E [Enter]
CODIGO HEX. MODELO
F8 PS/2 modelos 70 y 80
F9 PC convertible
FA PS/2 modelo 30
FB PC-XT (1986)
FC PC-AT, PC-XT modelo 286, PS/2 modelos 50 y 60, etc.
FE PC-XT (1982), port atil (1982)
FF Primera IBM PC
3.6. Vericaci on de la fecha en el ROM BIOS (FFFF5H)
La fecha de su ROM BIOS inicia en la localidad FFFF5H, registrada como mm/dd/aa. Para ver teclear:
D FFFF:5 [Enter]
El conocimiento de esta fecha es util para determinar la edad y modelo de la computadora
3.7. Guardar un programa
Uso del comando W. Suponiendo que el programa se encuentre en la memoria de la PC, los pasos para
guardar un programa son:
1. Determinar la longitud del programa, restando la direccion nal de la direccion inicial. La longitud se
expresa en hexadecimal
2. Crear un nombre para el programa, incluyendo el directorio y la extensi on.
3. poner la longitud del programa en el registro CX
4. Dar la orden de escritura
Ejemplo:
2343:0100 MOV AX,4
2343:0103 MOV BX,2
2343:0106 ADD AX,BX
2343:0108 INT 20
2343:010A
-H 10A 100 (paso 1)
020A 000A (resultado de la operaci on)
-N C:EJEM1.COM (paso 2)
-R CX (despliega el contenido del registro CX)
CX 0000 (contenido del registro CX)
:000A (paso 3)
-W (paso 4)
Writing 000A bytes (escribe la cantidad de bytes en el registro CX)
3.8. Cargar un archivo a la memoria
Uso del comando N, los pasos para cargar un archivo son:
1. Escribir el nombre del programa que se cargar a
4
2. Cargar el Programa con el comando (L)oad
3. Vericar que se a cargado el programa, desensamblando a partir de la localidad 100H
Ejemplo:
-N C:EJEM1.COM (nombre del programa a cargar)
-L (comando Load)
-U 100 L 9 (verica que se cargo el programa)
2357:0100 B80400 MOV AX,0004
2357:0103 BB0200 MOV BX,0002
2357:0106 01D8 ADD AX,BX
2357:0108 CD20 INT 20
3.9. Programa para Imprimir los siguientes n umeros: -0-1-2-3-4-5-6-7-8-9
-A 100
XXXX:0100 MOV AH,2
XXXX:0102 MOV CL,A
XXXX:0104 MOV BL,0
XXXX:0106 MOV DL,2D
XXXX:0108 INT 21
XXXX:010A MOV DL,BL
XXXX:010C ADD DL,30
XXXX:010F INT 21
XXXX:0111 INC BL
XXXX:0113 LOOP 106
XXXX:0115 INT 20
XXXX:0117
-R IP
IP:0100
:
-G
1. Graba el programa
-H 117 100
XXX YYYY
-N PNUMERO
-R CX
CX
:XXX
-W
2. Carga el programa PNUMERO
DEBUG PNUMERO
-L
-U 100 L XXXX
5
3.10. Programa para desplegar la siguiente frase: HOLA ASSEMBLER
-E 100 HOLA ASSEMBLER $
-A 110
XXXX:0100 MOV DX,100
XXXX:0102 MOV AH,9
XXXX:0106 INT 21
XXXX:0117 INT 20
XXXX:119
-R IP
IP:0100
:110
-G
6

También podría gustarte