¿Qué significa depurar?
Comandos principales de depuración 1. Un comando de ensamblaje [dirección]
Función: ensamblar instrucciones directamente en código de máquina e ingresarlas en la memoria.
Descripción: Se utiliza para ensamblar programas pequeños y modificar programas de destino. Todos los números de entrada están en hexadecimal. Las declaraciones de ensamblaje cargadas en la memoria por el usuario se almacenan continuamente si no se especifica ninguna dirección. el comando ensamblador, la declaración se ensambla en el área CS:0100. -a 0100 08F1:0100 MOV AH, 09 08F1:0102 MOV DX, 109 08F1:0105 INT 21H 08F1:0109 db '¡HOLA MUNDO! $' 08F1:0115 -g
2.D[dirección] o D[dirección de inicio][dirección de destino] comando de volcado
Función: muestra la información de la memoria en el modo de mapeo de memoria.
Nota: El volcado muestra el contenido de la imagen de la memoria en dos partes: la parte izquierda está en hexadecimal y la parte derecha está en caracteres ASCII. Todos los caracteres no imprimibles están representados por puntos (.). Cada línea muestra 16 bytes de contenido, con un guión entre el octavo y el noveno bytes; la dirección del segmento implícita en este comando es el valor de DS. Si no se especifica la dirección inicial, el comando D comienza a mostrarse desde la unidad siguiente a la última unidad mostrada. Si no se ha utilizado antes para el comando D, comienza desde el contenido del registro de segmento inicializado más el desplazamiento de dirección 0100H. . espectáculo.
3.E[dirección] [cadena de bytes) Comando de modificación de memoria
Función: Modifica el valor de la memoria a partir de la dirección especificada.
Nota: Si solo se ingresa el desplazamiento en la parte de la dirección, el comando E supone que el segmento está incluido en el registro DS. Hay dos formatos de comando: uno es reemplazar el contenido de varios bytes a partir de la dirección especificada con la cadena de bytes contenida en el comando; el otro es que el comando no va seguido de una cadena de bytes, lo que permite la visualización y modificación secuencial de bytes. , presione la barra espaciadora para mostrar el contenido del siguiente byte. Si desea modificarlo, ingrese directamente el valor correspondiente.
4.F [rango de direcciones] [byte o cadena de bytes] comando de llenado
Función: complete los bytes o la cadena de bytes que se completarán en la memoria especificada por el rango de direcciones medio .
5.G[=dirección de inicio] [[punto de interrupción]...] Ejecutar comando
Función: ejecuta el programa que se está depurando, detiene la ejecución cuando se alcanza el punto de interrupción y muestra registrar banderas y el siguiente comando a ejecutar.
Nota: Si no se especifica la dirección inicial, la dirección de instrucción actual está determinada por el contenido de los registros CS e IP. Si el usuario especifica la dirección inicial, la ejecución comenzará desde la dirección inicial especificada. Si se especifica un punto de interrupción, la ejecución se detendrá cuando la instrucción alcance la dirección de la instrucción y se mostrará el contenido de cada indicador de registro y el siguiente comando a ejecutar. El usuario puede configurar hasta 10 puntos de interrupción.
6.L[Dirección][Número de disco:][Número de sector lógico][Número de sectores]
Función: Cargar los sectores absolutos de un archivo o disco en la memoria.
Nota: El número máximo de sectores que se pueden cargar con un solo comando L es 80H, donde los números de disco 0, 1, 2, 3... representan A, B, C,... respectivamente. Se produce un error de lectura del disco.
7.N [Número de disco: ] [Ruta] [Nombre de archivo] [Extensión]
Función: Definir el nombre del archivo de operación.
Nota: Se pueden definir dos archivos de operación al mismo tiempo y los bloques de control de archivos formados se configuran en consecuencia en la memoria CS:5C y CS:6C para operaciones de comando L y W posteriores.
8.O[Dirección de puerto][Datos] Comando de salida
Función: Enviar bytes al puerto de salida especificado.
O 70 01
O 71 10
Q
9.P[=dirección] [datos] comando de proceso
Función: Detiene una instrucción de llamada de subrutina, una instrucción de bucle, una instrucción de interrupción o una instrucción de cadena repetida en la siguiente instrucción.
Explicación: Al ejecutar una instrucción de llamada de subrutina, una instrucción de bucle, una instrucción de interrupción o una instrucción de cadena repetida, emita el comando P para ejecutar la instrucción relevante y regresar a la siguiente instrucción a ejecutar. El comando P tiene la misma sintaxis que el comando T.
10. Comando Q de salida.
11. R[Registro] Comando de registro
Función: 1. Mostrar el contenido de un único registro y proporcionar funciones de modificación. En segundo lugar, muestre el contenido de todos los registros, además del estado de las banderas de letras y la siguiente instrucción a ejecutar. En tercer lugar, muestra el estado de 8 banderas y proporciona funciones de modificación.
12. Comando de seguimiento T[=dirección][número de instrucciones]
Función: realizar un seguimiento de la ejecución del programa una por una. Después de ejecutar cada instrucción, se analiza el contenido de cada una. Se mostrará el registro.
Nota: normalmente se realiza un seguimiento de una instrucción, pero el usuario también puede configurar el número de instrucciones para realizar un seguimiento de varias instrucciones a la vez. Después de ejecutar cada instrucción, se muestra el contenido de todos los registros y el estado de la bandera.
13. U[dirección de inicio] o [rango de direcciones]
Función: convierte el contenido de la memoria en declaraciones ensambladas.
Nota: El número de bytes desensamblados depende del modo de visualización del sistema del usuario y de las opciones utilizadas en el comando U.
14. W[Dirección] [Letra de unidad:] [Sector de inicio] [Número de sectores] Comando de escritura en disco
Función: Escribe los datos modificados en el disco.
Descripción: Los datos que comienzan desde la dirección de memoria especificada se pueden escribir en el disco y el archivo de depuración se puede escribir en el disco sin especificar parámetros ni especificar el parámetro de dirección. -A 100
MOV DX, 70
MOV AL, 10
SALIDA DX, AL
MOV DX, 71
MOV AL, 01
OUT DX, AL (debe presionar Enter dos veces, luego aparecerá el mensaje "-" y luego ingresar el siguiente comando)
R CX ("CX 0000" aparecerá después de presionar Enter, y luego presione Enter nuevamente)
0C
N pass.COM
W
Q
Esto generará pass.com en el directorio actual de Debug. Es un programa para borrar la configuración de la contraseña del BIOS. Simplemente escriba "pass" en el indicador de DOS y presione Enter. Después de nuestras pruebas, se puede ejecutar con éxito en Windows. Simplemente no es muy estable y a veces reinicia la computadora. l Para detectar si hay píxeles muertos en la pantalla LCD, puede llenar toda la pantalla con colores sólidos como rojo, verde, azul y blanco para facilitar la inspección.
A continuación se muestran varios comandos F de uso común para la detección de visualización (la ventana de depuración generalmente es pequeña, presione Alt Enter para ampliarla a toda la pantalla):
F B800: 00 F9F 20 70 pantalla completa blanca; p >
F B800: 00 F9F 20 40 pantalla completa rojo
F B800: 00 F9F 20 20 pantalla completa verde
F B800: 00 F9F 20 10 pantalla completa azul
F B800: 00 F9F C5 07 C4 07 Cuadrícula cruzada blanca a pantalla completa
F B800: 00 F9F C5 04 C4 04 Cuadrícula cruzada roja a pantalla completa
F B800 : 00 F9F C5 02 C4 02 Cuadrícula cruzada verde de pantalla completa
F B800:00 F9F C5 01 C4 01 Cuadrícula cruzada azul de pantalla completa