PRACTICA 4 3-1. ¿Cuál es el propósito de cada uno de los siguientes comandos de DEBUG? (a) A; (b) D; (c) E; (d) P;(e) Q; (f) R; (g) T; (h) U.
a) A: Ensamblar instrucciones simbólicas y pasarlas a
código máquina. b) D: Mostrar el contenido de un área de memoria. c) E: Introducir datos en memoria, iniciando en una localidad especifica. d) P: Proceder o ejecutar un conjunto de instrucciones relacionadas. e) Q: Salir de la sesión con DEBUG. f) R: Mostrar el contenido de uno o más registros g) T: Rastrear la ejecución de una instrucción. h) U: “Desensamblar” código de maquina y pasarlo a código simbólico.
3-2. Proporcione los comandos de DEBUG para las siguientes
necesidades. (a) Muestre la memoria iniciando en el desplazamiento 264H en el segmento de datos. -D CS:02 64 (b) Muestre la memoria iniciando en la localidad 410H. (Nota: Separe esta dirección en los valores de su segmento y del desplazamiento.) (b) Ingrese el valor hexadecimal A8B364 en el segmento de datos iniciando en la localidad 200H. -E CS:200 A8 B3 64 -D CS 200 (d) Muestre el contenido de (i) todos los registros y (ii) sólo del registro IP. (e) Desensamble el código de máquina que se encuentra en las localidades desde la 100H hasta 11EH. 3-3 Proporcione instrucciones en código de máquina para las siguientes operaciones: (a) Mover el valor 4629 hexadecimal al registro AX; (b) sumar el valor hexadecimal 036A al registro AX 3-4. Suponga que ha utilizado DEBUG para introducir el comando siguiente: E CS:100 B8 45 01 05 25 00 El valor 45 hexadecimal supuestamente era 54. Codifique otro comando E para corregir sólo el byte que está incorrecto; esto es, cambie el 45 por el 54 de forma directa.
3-5. Suponga que ha utilizado DEBUG para introducir el
comando E siguiente: E CS:100 B8 04 30 05 00 30 90 (a) ¿Cuáles son las tres instrucciones simbólicas representadas aquí? (El primer programa en este capítulo da una pista.) (b) Al ejecutar este programa, usted descubre que el registro AX termina con 6004 en lugar del esperado 0460. ¿Cuál es el error y cómo lo corregiría? (c) Habiendo corregido las instrucciones, usted ahora vuelve a ejecutar el programa desde la primera instrucción. ¿Cuáles son los dos comandos de DEBUG que se requieren? 3-6. Considere el programa en lenguaje de máquina B0 25 DO E0 B3 15 F6 E3 90 Este programa realiza lo siguiente: • Mueve el valor 25 hexadecimal al registro AL. • Recorre el contenido de AL un bit a la izquierda. (El resultado es 4A.) • Mueve el valor 15 hexadecimal al registro BL. • Multiplica el AL por el BL. 3-7. Utilice el comando E de DEBUG para introducir el siguiente programa en lenguaje de máquina: C ó d i g o de m á q u i n a (en 100H) : A0 00 02 DO E0 F6 26 01 02 A3 02 02 90 D a t o s (en 2 0 0 H ) : 25 15 00 00 Este programa realiza lo siguiente: • Mueve el contenido de un byte en DS:0200 (25) al registro AL. • Recorre el contenido de AL un bit a la izquierda. (El resultado es 4A.) • Multiplica el AL por un byte contenido en DS:0201 (15). • Mueve el producto de AX a la palabra que inicia en DS:0202. Después de introducir el programa, teclee los comandos D para ver el código y los datos. Después teclee R y suficientes comandos T, de manera sucesiva, para avanzar por el programa hasta que llegue a NOP. Al llegar a este punto, el AX debe contener el producto en memoria en 0612H. Teclee otro D DS:0200 y note que el producto en DS:0202 es almacenado como 1206H. 3-10. ¿Cuál es el propósito de la instrucción INT? R: Es una interrupción. la cual sale de su programa, ingresa una rutina del DOS o de BIOS, realiza la función solicitada y regresa a su programa.