Colección de citas famosas - Slogan de motivación - Uso detallado de los comandos de depuraciónComando de depuración Parámetros del comando DEBUG explicación detallada DEBUG es una utilidad de DOS y una herramienta de depuración de programas para programadores. Se puede utilizar para examinar bytes en cualquier lugar de la memoria y para modificar bytes en cualquier lugar. Se puede utilizar para ejecutar un programa paso a paso para verificar la corrección del programa. También puede rastrear el proceso de ejecución, comparar valores antes y después de la ejecución de instrucciones, comparar y mover rangos de datos en la memoria y leer y escribir archivos y sectores del disco. Sus funciones incluyen los siguientes aspectos. 1. Ingrese, modifique, rastree y ejecute directamente programas fuente en lenguaje ensamblador 2. Observe el contenido del sistema operativo 3. Verifique el contenido de ROMBIOS 4. Observe y cambie los valores de configuración en la RAM; sectores o archivos al formulario para leer y escribir datos del disquete. La depuración trata todos los datos como una secuencia de bytes. Entonces puede leer cualquier tipo de archivo. DEBUG puede reconocer dos tipos de datos: datos hexadecimales y caracteres de código ASCⅱⅱ. Su formato de visualización es el valor hexadecimal de cada byte y el carácter de código ASCⅱII correspondiente al byte con valor entre 32 y 126. Hay dos formas de ingresar datos en la depuración: modo de solicitud y modo sin solicitud. Cuando se utiliza el método de solicitud, el usuario ingresa un comando para ingresar datos, seguido de la dirección donde se ingresarán los datos. Luego, el usuario puede ver el contenido existente y dos puntos en este lugar. En este punto, el usuario puede ingresar un nuevo valor cuando se le solicite o presionar Intro o CTRL+C para regresar al mensaje horizontal corto (-). Cuando se utiliza el método sin solicitud, el usuario puede ingresar la dirección de almacenamiento de los datos que se ingresarán y los bytes que se ingresarán. Sin embargo, a diferencia de cuando se usa un procesador de textos o un editor de texto, cuando se usa DEBUG, el usuario no puede mover directamente el cursor a un punto de entrada para ingresar o modificar datos, sino que ingresa uno o varios bytes a la vez. Cuando se utiliza DEBUG, solo se pueden involucrar datos en la memoria, por lo que generalmente se especifica la dirección de memoria a procesar. El formato de entrada de la dirección es: [dirección del segmento]: [desplazamiento]. Si no se ingresa ninguna dirección, la depuración utilizará el segmento de memoria actual, comenzando desde el byte en la dirección 100H. Los primeros 100H bytes están reservados para el prefijo del segmento del programa. Esta área especial se utiliza para establecer la conexión entre DOS y el programa. DEBUG siempre utiliza cuatro dígitos hexadecimales para representar direcciones. Utilice dos dígitos para representar datos hexadecimales. En este punto, todos deberían tener una comprensión preliminar de DEBUG, pero saberlo no es suficiente. A continuación, hablaré sobre el formato de comando y los comandos de DEBUG. Al ingresar a DEBUG para llamar al depurador, aparecerá un breve mensaje de línea horizontal. El usuario puede ingresar el comando del depurador después del breve mensaje de línea horizontal. Algunos comandos de depuración muestran direcciones de memoria y generan dos puntos como indicaciones. Después de estas indicaciones, el usuario puede ingresar un nuevo valor para cambiar el valor original de la posición mostrada. Si el usuario presiona Enter o CTRL+C en lugar de ingresar un nuevo valor, el valor original no cambia. Generalmente no es necesario separar la dirección del nombre del comando. Por ejemplo, si usa el comando de volcado D para ver los datos en la dirección 100, puede ingresar este comando en cualquiera de las siguientes situaciones: D 100D 100D 100D, 100 Si hay un error en el comando de entrada, DEBUG marcará el ubicación frente al error en la siguiente línea, por ejemplo, -s 100D 12 Error DEBUG Nota: Se utiliza para ensamblar programas pequeños y modificar el programa de destino. Todos los números ingresados están en hexadecimal y las declaraciones ensambladas cargadas en la memoria por el usuario se almacenan continuamente. Si no se especifica ninguna dirección y el comando ensamblador no se ha utilizado antes, la declaración modificada se ensamblará en el área CS:0100. Ejemplo a:> DEBUG -a 0100 08f 1:0100 movah, 09 08F1:0102MOVDX, 109 08f 1:0105 int 21H; 08f 1:0107 int 21H; Debugtan.exe -u: Descompilar en código de programa en lenguaje ensamblador... ................................................. ................ .................................... ................................. .................... ................................................ ...... ..Debugtan.exe-g puede comenzar a ejecutar este programa, que es exactamente el mismo que en DOS: *H [valor numérico] [valor numérico] Función de comando de operación aritmética hexadecimal: muestra dos valores hexadecimales respectivamente La suma del sistema números y la diferencia entre el primer número y el segundo número. Descripción: Complete operaciones simples de números hexadecimales para los usuarios. Ejemplo: -h45385623 9B5BEF15 *I [dirección de puerto] Función: Ingresar y mostrar (hexadecimal) un byte del puerto especificado. Por ejemplo: -i70f 9; el comando F9 I que muestra el contenido del puerto 70 puede recuperar datos de los puertos de 64K de 80X86 *L [dirección] [número de disco:] [número de sector lógico] [número de sector] Función: archivo absoluto o los sectores del disco se cargan en la memoria. Nota: Un solo comando L puede cargar hasta 80H sectores, donde los números de disco son 0, 1, 2, 3... representando respectivamente A, B, C,... Se produce un error de lectura del disco y se muestra un mensaje de error. .
Uso detallado de los comandos de depuraciónComando de depuración Parámetros del comando DEBUG explicación detallada DEBUG es una utilidad de DOS y una herramienta de depuración de programas para programadores. Se puede utilizar para examinar bytes en cualquier lugar de la memoria y para modificar bytes en cualquier lugar. Se puede utilizar para ejecutar un programa paso a paso para verificar la corrección del programa. También puede rastrear el proceso de ejecución, comparar valores antes y después de la ejecución de instrucciones, comparar y mover rangos de datos en la memoria y leer y escribir archivos y sectores del disco. Sus funciones incluyen los siguientes aspectos. 1. Ingrese, modifique, rastree y ejecute directamente programas fuente en lenguaje ensamblador 2. Observe el contenido del sistema operativo 3. Verifique el contenido de ROMBIOS 4. Observe y cambie los valores de configuración en la RAM; sectores o archivos al formulario para leer y escribir datos del disquete. La depuración trata todos los datos como una secuencia de bytes. Entonces puede leer cualquier tipo de archivo. DEBUG puede reconocer dos tipos de datos: datos hexadecimales y caracteres de código ASCⅱⅱ. Su formato de visualización es el valor hexadecimal de cada byte y el carácter de código ASCⅱII correspondiente al byte con valor entre 32 y 126. Hay dos formas de ingresar datos en la depuración: modo de solicitud y modo sin solicitud. Cuando se utiliza el método de solicitud, el usuario ingresa un comando para ingresar datos, seguido de la dirección donde se ingresarán los datos. Luego, el usuario puede ver el contenido existente y dos puntos en este lugar. En este punto, el usuario puede ingresar un nuevo valor cuando se le solicite o presionar Intro o CTRL+C para regresar al mensaje horizontal corto (-). Cuando se utiliza el método sin solicitud, el usuario puede ingresar la dirección de almacenamiento de los datos que se ingresarán y los bytes que se ingresarán. Sin embargo, a diferencia de cuando se usa un procesador de textos o un editor de texto, cuando se usa DEBUG, el usuario no puede mover directamente el cursor a un punto de entrada para ingresar o modificar datos, sino que ingresa uno o varios bytes a la vez. Cuando se utiliza DEBUG, solo se pueden involucrar datos en la memoria, por lo que generalmente se especifica la dirección de memoria a procesar. El formato de entrada de la dirección es: [dirección del segmento]: [desplazamiento]. Si no se ingresa ninguna dirección, la depuración utilizará el segmento de memoria actual, comenzando desde el byte en la dirección 100H. Los primeros 100H bytes están reservados para el prefijo del segmento del programa. Esta área especial se utiliza para establecer la conexión entre DOS y el programa. DEBUG siempre utiliza cuatro dígitos hexadecimales para representar direcciones. Utilice dos dígitos para representar datos hexadecimales. En este punto, todos deberían tener una comprensión preliminar de DEBUG, pero saberlo no es suficiente. A continuación, hablaré sobre el formato de comando y los comandos de DEBUG. Al ingresar a DEBUG para llamar al depurador, aparecerá un breve mensaje de línea horizontal. El usuario puede ingresar el comando del depurador después del breve mensaje de línea horizontal. Algunos comandos de depuración muestran direcciones de memoria y generan dos puntos como indicaciones. Después de estas indicaciones, el usuario puede ingresar un nuevo valor para cambiar el valor original de la posición mostrada. Si el usuario presiona Enter o CTRL+C en lugar de ingresar un nuevo valor, el valor original no cambia. Generalmente no es necesario separar la dirección del nombre del comando. Por ejemplo, si usa el comando de volcado D para ver los datos en la dirección 100, puede ingresar este comando en cualquiera de las siguientes situaciones: D 100D 100D 100D, 100 Si hay un error en el comando de entrada, DEBUG marcará el ubicación frente al error en la siguiente línea, por ejemplo, -s 100D 12 Error DEBUG Nota: Se utiliza para ensamblar programas pequeños y modificar el programa de destino. Todos los números ingresados están en hexadecimal y las declaraciones ensambladas cargadas en la memoria por el usuario se almacenan continuamente. Si no se especifica ninguna dirección y el comando ensamblador no se ha utilizado antes, la declaración modificada se ensamblará en el área CS:0100. Ejemplo a:> DEBUG -a 0100 08f 1:0100 movah, 09 08F1:0102MOVDX, 109 08f 1:0105 int 21H; 08f 1:0107 int 21H; Debugtan.exe -u: Descompilar en código de programa en lenguaje ensamblador... ................................................. ................ .................................... ................................. .................... ................................................ ...... ..Debugtan.exe-g puede comenzar a ejecutar este programa, que es exactamente el mismo que en DOS: *H [valor numérico] [valor numérico] Función de comando de operación aritmética hexadecimal: muestra dos valores hexadecimales respectivamente La suma del sistema números y la diferencia entre el primer número y el segundo número. Descripción: Complete operaciones simples de números hexadecimales para los usuarios. Ejemplo: -h45385623 9B5BEF15 *I [dirección de puerto] Función: Ingresar y mostrar (hexadecimal) un byte del puerto especificado. Por ejemplo: -i70f 9; el comando F9 I que muestra el contenido del puerto 70 puede recuperar datos de los puertos de 64K de 80X86 *L [dirección] [número de disco:] [número de sector lógico] [número de sector] Función: archivo absoluto o los sectores del disco se cargan en la memoria. Nota: Un solo comando L puede cargar hasta 80H sectores, donde los números de disco son 0, 1, 2, 3... representando respectivamente A, B, C,... Se produce un error de lectura del disco y se muestra un mensaje de error. .
(1)Formato 1. lCargue el sector/número de sector al principio del nombre de la unidad de dirección. Este método puede cargar el contenido de un rango de sector específico en el disco en un área de memoria a partir de la dirección especificada. El número de sector se refiere al método lógico/sector. Ejemplo: -l10001, monte el sector 0 de la unidad A en CS:100-d 10010f 08f 1:0100 eb3c 903 c 53444 f 53-3663. MSDOS 6.22....(2) Formato 2: Dirección de carga L Este método puede cargar el archivo especificado en la memoria. El archivo cargado se puede especificar al ingresar a DEBUG o se puede crear mediante el comando n. El formato es -n nombre de archivo: Ejemplo 1 DEBUGtan.pas -L100 Ejemplo 2DEBUG -ntan.pas -L100 Nota: El comando L solo puede leer sectores lógicos, pero no puede leer la tabla de particiones del disco duro A=00, B=01. Utilice el código de disco del comando L. C = 02.....* m[rango de direcciones][dirección de inicio] Función de comando de transferencia de datos: mueva el contenido de la unidad de almacenamiento dentro del rango de direcciones a la dirección especificada de la dirección de inicio, indicando el área de origen y el área de destino durante el proceso de transferencia Es posible una superposición parcial; los datos de la región de origen permanecen sin cambios después de la transferencia. Por ejemplo: -e 100414243445 -d 1008 f 1:010041424344562626364-6142438 438+000104110 -d 110f 1:0100414243450 a 216438. Nota: Se pueden definir dos archivos de operación al mismo tiempo y los bloques de control de archivos formados se pueden configurar en las memorias CS:5C y CS:6C para operaciones de comando L y W posteriores. Al depurar un programa en ejecución, agregamos el nombre del programa del archivo y los parámetros del programa o archivo en ejecución después de iniciar la depuración, pero al depurar un período, se pueden cargar otros archivos para probar. En este momento, podemos usar el comando n para configurarlo sin salir de la depuración. Ejemplo: a:\>DEBUGtan.exe-NYOUG. PAS Después de depurar el programa durante un período de tiempo, si desea cargar tan.exe en tan1.pas, entonces -ntanl.pas *O[dirección de puerto][datos] función de comando de salida: envía bytes al puerto de salida especificado. Ejemplo: cuando se nos pide que ingresemos una contraseña al inicio, podemos cancelarla de la siguiente manera -o 7010 _ o 7100 * P[= dirección][datos] función de comando de proceso: detener una instrucción de llamada de subrutina, instrucción de bucle, interrupción instrucción o instrucciones de cadena siguientes repetidas en una instrucción. Descripció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 las instrucciones relevantes y regresar a la siguiente instrucción a ejecutar. El comando P, al igual que el comando T, se utiliza para rastrear el proceso de ejecución del programa. Podemos especificar la dirección inicial y el número de instrucciones del programa en el comando P. Si no se especifica, la dirección del programa especificada por CS:IP comenzará a ejecutar un comando a la vez. La diferencia entre el comando P y el comando T es que el comando P ejecuta CALL/INT como una instrucción, lo que simplifica el proceso de rastreo. El comando P solo ejecuta comandos en RAM, mientras que el comando T puede ejecutar programas en RAM y ROM. *Q sale del comando. *R[Registro] función de comando de registro: 1. Muestra el contenido de un único registro y proporciona funciones de modificación. En segundo lugar, se muestra 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. Si no quieres cambiar, entra. Por ejemplo: -rbxbx 0050:51 -rax = 0000 bx = 0051cx = 0000 sp = FFE ebp = 0000 si = 0000 ds = 0003 es = 0 cd3ss = 0 cd3ip = 065438.38+0000FDBOF si desea cambiar el registro de bandera y presione la banda Con la tecla Intro de -RF, la depuración mostrará el contenido de la bandera. Si desea cambiar alguna bandera, simplemente ingrese el nombre de la bandera. La configuración del nombre de la bandera no está configurada. La configuración del nombre de la bandera no está configurada. Desbordamiento (sin desbordamiento) NV (sin desbordamiento) cero ZRNZ (no igual a cero) dirección DN (disminución) arriba (aumento) acarreo auxiliar ACNA (sin acarreo) interrupción EI (permitido) DI (deshabilitado) indicador de paridad PE (par número) PO (número impar) ) signo NG (negativo) PL (positivo) llevar CYNC. LNZNAPONC: -OVDI↓←Valor de entrada*S[rango de direcciones][cadena] función: Encuentra la cadena dada en el rango de direcciones especificado. Descripción: se utiliza para especificar una cadena dentro del rango de direcciones de búsqueda. Si se encuentra, se mostrará la dirección; de lo contrario, se mostrará el mensaje de depuración directamente. La dirección implícita es el valor del segmento DS. La memoria aquí se puede representar mediante (dirección inicial) (dirección final) o (dirección inicial) L (longitud), y se pueden mezclar cadenas y líneas de datos: como 02.76 "BC".