¿Qué es la depuración? Ayuda sobre el comando debug y sus parámetros. Un paso importante en la detección de errores

¡Hola! Me pregunto por qué la ortografía de la palabra motochas (hora del motor) cambió a un guión: ¿moto-hora? ¿Cómo explicar esto a los estudiantes?

Deletrear una palabra hora de la motocicleta resumió la regla: las unidades de medida complejas, independientemente de si se forman con la ayuda de vocales conectadas o sin ellas, se escriben con un guión (cf.: hombre-día, tonelada-kilómetro, kilovatio-hora). Esta regla en general es una excepción a la regla relativa a los sustantivos compuestos, que, cuando tienen una vocal conectora, se escriben juntos. En la práctica de escribir la palabra. hora de la motocicleta, aparentemente, se usaba más a menudo en escritura continua, lo que correspondía regla general. Quizás los lingüistas, fijando una palabra en diccionario de ortografía Por primera vez (esto sucedió en 1974), vimos que la escritura de tales unidades de medida no obedece bien a la regla. Si hubo una excepción señalada en 1956 jornada laboral, en 1967 D. E. Rosenthal añade hora de trabajo, luego se fija en las reglas un montón de basura. Debido a la inestabilidad de este ámbito de la escritura, el aumento del número de excepciones correspondientes a la regla general, los lingüistas de principios del siglo XXI. Sugirieron abandonar la regla de excepción y escribir las unidades de medida juntas. Sin embargo, el proyecto que contenía esta propuesta fue rechazado categóricamente por la sociedad, no fue aceptado a nivel estatal y los lingüistas tuvieron que recodificar la palabra, subordinándola a una regla de excepción.

Pregunta nº 294276

¡Hola! ¿Cómo rechazar correctamente la frase “caja de cartón” usando números? ¿Dos cajas de cartón o dos cajas de cartón? ¿Tres cajas de cartón o tres cajas de cartón? ¿Cuatro cajas de cartón o cuatro cajas de cartón?

Respuesta mesa de ayuda idioma ruso

Para sustantivos femeninos dependiendo de los números. dos tres cuatro, una definición ubicada entre un número y un sustantivo suele estar en forma nominativa plural: dos (tres, cuatro) cajas de cartón. Pero también una opción dos (tres, cuatro) cajas de cartón Es posible, no es un error.

Pregunta nº 286473

Buenas tardes Por favor ayúdame a escribir correctamente una oración muy importante. “Actualmente en procesos de gran escala como el craqueo, el hidrocraqueo... y otros, se usa…” Es muy importante resaltar la frase con el “cómo”, ¿será correcta?

Respuesta de la mesa de ayuda rusa

Si la combinación y otros indica otro tipo de procesos de gran tonelaje, entonces es correcto: Actualmente, en procesos de gran escala como el craqueo, el hidrocraqueo… y otros, se utiliza…

Pregunta nº 285761

Rango: ¿0,5-1 tonelada o 0,5-1 tonelada? ¿Por qué?

Respuesta de la mesa de ayuda rusa

Estos diseños no están regulados por normas. Puede salir de una situación gramatical difícil de la siguiente manera: rango 0,5 – 1t o rango de 0,5 a 1 tonelada.

Pregunta nº 274025
¡Hola, querido servicio de ayuda en idioma ruso!
Sobre abreviaturas de unidades de tiempo.
El autor de la pregunta No. 209637 se refirió a su respuesta a la pregunta No. 208758 de que las unidades de medida abreviadas se escriben sin puntos, y señaló una contradicción con el hecho de que usted propone escribir unidades de tiempo abreviadas con puntos. (Usted ha consultado repetidamente el diccionario de ortografía).
Le respondiste (cito):
"No hay contradicción. Las unidades de medida abreviadas son, por ejemplo, kg (kilogramo), c (centre), tf (tonelada-fuerza), sb (stilb), m (metro). El minuto y el segundo no pertenecen a unidades de medida, son unidades de tiempo".
Lo siento, pero ¿qué significa "unidades de tiempo"? El tiempo como tal no tiene unidades, al igual que la longitud, la fuerza, la presión y cualquier magnitud física en general.
"Unidad de tiempo" es un término estricto abreviado para "unidad de tiempo" (jerga). Asimismo, el término "unidad de longitud" se abrevia como "unidad de longitud" al igual que todas las demás unidades de medida.
Por tanto, todavía hay una contradicción. Como físico y editor, no veo ningún sentido en separar las unidades de tiempo en una categoría especial y en los puntos después de las abreviaturas "s", "min", "hora", etc.
Atentamente,
Pedro

Respuesta de la mesa de ayuda rusa

No se colocan puntos después de nombres abreviados de cantidades físicas. Los puntos se colocan después de los nombres abreviados de las unidades de tiempo (aunque el tiempo también se cantidad física). Tradición :) Otras unidades de tiempo (años, siglos) se formalizan de la misma forma (con puntos).

Pregunta nº 265334
Hola. ¿Por qué deberías escribir 10 piezas y no 10 piezas?
Después de todo, los nombres abreviados de unidades de medida se escriben sin
puntos, por ejemplo: kg (kilogramo), c (centavo), tf (tonelada-fuerza).
Párrafo 209, Reglas de ortografía y puntuación rusas. Lleno
Libro de referencia académica / Ed. V.V.Lopatina. -
M: Eksmo, 2007.

Respuesta de la mesa de ayuda rusa

Pregunta nº 261767
Una vez más estoy tratando de hacer una pregunta y realmente espero una respuesta. “¿Quieres variedad(,) o la actividad monótona es más adecuada para ti?” ¿Es necesaria una coma antes de "o" entre oraciones simples¿Como parte de un interrogativo complejo? ¡Tengo muchas ganas de recibir tu respuesta!

Respuesta de la mesa de ayuda rusa

No se utiliza coma porque las partes de una oración compleja están unidas por una entonación interrogativa.

Pregunta nº 246622
¿Cómo abreviar correctamente la palabra tonelada en el texto: t o tn.? gracias de antemano

Respuesta de la mesa de ayuda rusa

T correcta (sin punto).

Pregunta nº 242450
¿Están las comas colocadas correctamente? Esto es necesario para procesar, en primer lugar, contenedores de gran tonelaje.

Respuesta de la mesa de ayuda rusa

Se necesitan comas.

Pregunta nº 242362
Explique la diferencia semántica entre las palabras "túnel" y "túnel". ¿En qué caso es correcto utilizar el primero y cuándo el segundo? ¿Por qué sucedió que el significado de las palabras es el mismo, pero la ortografía es diferente?

Respuesta de la mesa de ayuda rusa

Túnel Y túnel - opciones ortográficas iguales (es decir, no son Diferentes palabras, A diferentes variantes escribiendo una palabra). Cualquiera de estas opciones se puede utilizar en cualquier contexto.

La presencia de variaciones ortográficas está asociada a la historia de la palabra: vino a nosotros desde en Inglés, en el que se utilizó la palabra túnel para describir el paso bajo el Támesis, construido por el ingeniero francés Brunel. A su vez, el túnel inglés, que literalmente significa "tubo de chimenea", se remonta al francés tonnelle, un diminutivo. de tonelada "barril" (de ahí, dicho sea de paso, la palabra tonelada). En el siglo XVI, la palabra tonnelle ya aparece en los textos franceses con el significado de “tubería” (en particular, “tubería subterránea”), aparentemente derivada del significado de “barril (acostado de lado) sin fondo”.

En ruso la palabra túnel (túnel) se conoce desde mediados del siglo XIX, y ya se registran diferentes grafías en los diccionarios.

¿Está escrito correctamente: hormigón de arcilla expandida?

Respuesta de la mesa de ayuda rusa

Sí, lo escribiste correctamente.
Pregunta nº 235115
¿Cómo abreviar la palabra =millón=, con o sin punto? ¿Y la palabra =ton= / =ton=?

Respuesta de la mesa de ayuda rusa

Abreviaturas reglamentarias: _millones, t_ (sin puntos).
Pregunta nº 229641
¿Es necesario poner un punto al abreviar las siguientes palabras: tonelada, millón, billón, billón, minuto, segundo, hora? ¿Y en qué diccionario se puede encontrar esa información?

Respuesta de la mesa de ayuda rusa

Las abreviaturas de las palabras _toneladas, millones, mil millones, billones_ se escriben sin puntos, las abreviaturas de las palabras _minuto, segundo, hora_, con puntos. Consulte el "Diccionario de ortografía rusa" de la Academia de Ciencias de Rusia.
Pregunta nº 227681
Por favor, dígame cuál es la abreviatura correcta de la palabra tonelada (toneladas) en ruso. ¡Gracias!

Respuesta de la mesa de ayuda rusa

Correcto: _t_ (sin punto).

Después de la abreviatura suele haber un punto. Las palabras suelen abreviarse después de una consonante, por ejemplo: GRAMO.(año, ciudad), T.(volumen), r.(río), gramo.(ciudadano), r. Y frotar.(rublo), a ellos.(nombre), profe.(profesor), sin embargo, las abreviaturas también se encuentran después de una vocal, la primera letra de una palabra, por ejemplo: A. l.(hoja del autor), o.(lago, isla, padre).

Nota. Utilice abreviaturas frotar. Y policía. en cambio r. Y A. permitido sólo en publicaciones para lectores no preparados. En cualquier caso, dentro de una publicación solo se debe utilizar una forma de abreviatura: una o tres letras.

Millones, mil millones, mil Se recomienda utilizar en lugar de ceros en numeros redondos; p.ej: 45 millones de copias; 10 mil millones de rublos; 10 mil ejemplares. Estas abreviaturas son menos deseables delante de los nombres y designaciones de unidades físicas. valores en publicaciones para el lector general. Recomendado, por ejemplo: 10 mil metros o 10 mil metros(en publicaciones para el lector general) y 10 mil metros(en publicaciones para especialistas). Todas estas abreviaturas son inaceptables antes de números (en inversión) y en los casos en que las abreviaturas están separadas de los números por palabras. P.ej:

En abreviaturas gráficas se conservan las consonantes dobles de la raíz antes del punto, por ejemplo: Culo.(asistente), Muñeca.(dólar), enfermo.(ilustración), Ott.(imprimir), adm. –ter.(administrativo-territorial). Si hay una consonante doble en la unión de una raíz y un sufijo, entonces en la abreviatura solo se conserva la primera consonante, por ejemplo: Rusia.(Ruso), paredes(muro); Pero: ruso(Ruso).

Nombres abreviados de ciudades, por ejemplo: hora de moscú(Moscú), nsk(Novosibirsk).

Cambiar la forma plural forma parte de abreviaturas gráficas de una letra: están duplicadas, para que el lector no tenga dificultades para leer. P.ej: en 1976-1980(el lector no necesita pensar en palabras en plural o singular año usado aquí - inmediatamente queda claro que es plural), Siglos XIX - XX; páginas. 1, 5 y 6.

Después de letras duplicadas (que generalmente denotan plurales), se coloca un punto solo una vez, por ejemplo: siglos(siglo), ggg.(años, señores), todos.(hojas), ss.(páginas), vol.(volúmenes).

Los nombres abreviados de unidades de medida, según GOST, se escriben sin puntos, por ejemplo: kg(kilogramo), ts(centro), ts(tonelada-fuerza), t(tonelada), gs(gramo-fuerza), Se sentó(stilb), mks(maxwell); milímetros(milímetro), cm(centímetro), metro(metro), kilómetros(kilómetro), Ja(hectárea), A(Arkansas); Con(segundos), mín.(minutos), h(horas). También se escriben abreviaturas. millón(millones) y mil millones(mil millones). Sin embargo, en el Diccionario de ortografía rusa de la Academia de Ciencias de Rusia, la ortografía de algunas de estas abreviaturas está fijada con puntos, por lo que la lista de abreviaturas comúnmente utilizadas se presenta de la siguiente manera:

reducción transcripción
A. l. Y auto l. hoja del autor
V., siglos siglo, siglos

g., años

año, años

GRAMO gramo
Muñeca. dólar
etc. etcétera
etcétera. etc.
Doctor. Y A. candidato
kg kilogramo
kg. tamaño
Doctor. alguno
metro metro
MEGABYTE megabyte
mín. Y metro. minuto
milímetros milímetro
r. Y frotar. rublo
Con. Y segundo. segundo
Con. Y pag. página
cm centímetro
cm. Mirar
T. , vol. volumen, volúmenes
T. Y mil mil
NOMBRE COMPLETO. Y F. Y. o. Nombre completo

El depurador DEBUG está diseñado para resolver amplia gama tareas. Estas incluyen, por ejemplo, las siguientes tareas: explorar el contenido actual memoria de acceso aleatorio; desensamblar archivos .COM y .EXE; desarrollo y depuración; programas propios en lenguaje ensamblador; estudiar el funcionamiento de programas y su modificación; pruebas Equipamiento periferico, para trabajar con puertos de E/S directamente (en modo interactivo); estudiando el sistema de comando del procesador, BIOS y interrupciones de MS-DOS.

Hay dos formas de iniciar el depurador:

depurar (Intro) o nombre de archivo de depuración (Intro)

Después del lanzamiento, el depurador se carga en la RAM y el contenido de los registros de segmento CS, DS, ES, SS se carga en el primer párrafo libre inmediatamente después del depurador. El registro IP está configurado en 100.

El depurador DEBUG tiene un puntero de dirección de datos especial que se utiliza de forma predeterminada en muchos comandos del depurador.

Después de iniciar el depurador, aparece un guión [-] en el lado izquierdo de la pantalla, lo que indica que el depurador está esperando un comando. Todos los números son interpretados por el depurador en sistema hexadecimal cálculo.

COMANDOS DE DEPURACIÓN

A - comando de montaje. Este comando le permite ingresar programas usando un código mnemotécnico de comando en la RAM. Ingresar un comando del depurador

A<число>(Ingresar)

lo obliga a cambiar al modo de recibir comandos desde el teclado y colocarlos secuencialmente, comenzando desde la dirección igual a la especificada en el comando. Al ingresar, puede utilizar dos instrucciones de ensamblador populares, DB y DW. Por ejemplo:

DB 1,2,3,”EJEMPLO”

DW 1000,2000,”FFFF”

El depurador admite mnemónicos para todos los comandos del procesador, así como para el coprocesador 80X87. Al ensamblar los comandos JMP y CALL, de forma predeterminada, si es posible, se utiliza la variante CORTA de estos comandos. Pero puede especificar NEAR o FAR antes de la dirección de transición, lo que conducirá a la generación comandos correspondientes. El mnemotécnico para la declaración RET correspondiente a CALL FAR es RETF. Es posible, y en casos dudosos necesario, utilizar los punteros WORD PTR o BYTE PTR. Al ingresar a un programa, se permite imprimir los prefijos CS:, ES:, SS: delante del comando en la misma línea.

Ejemplo. Programa para llenar la pantalla con el símbolo “!”.

Escriba A 200 (Entrar), luego ingrese al programa

Al final del programa hay un comando INT 20, que devuelve el control al monitor de comandos del depurador. Ejecute este programa por comando

C - comparación. Este comando compara dos áreas de memoria, byte por byte, e imprime todas las diferencias entre ellas en el formulario

<адрес> <содержимое> <содержимое> <адрес>

En esta entrada, la información sobre la primera área de memoria se proporciona a la izquierda y la información sobre la segunda a la derecha.

Ejemplo. Compare dos bloques de memoria de 256 bytes de longitud. El primero comienza en la dirección 100, el segundo comienza en la dirección 300.

Para hacer esto necesitas marcar

Con 100L100 300 (Entrar)

Este comando puede resultar útil, por ejemplo, al comprobar si dos disquetes son idénticos. Para ello, se cargan en áreas de memoria adyacentes los bloques correspondientes de estos disquetes que nos interesan, que luego son analizados mediante el comando C.

D - volcado de RAM. Este comando muestra en la pantalla una impresión del área especificada de RAM, representada en notación hexadecimal, y a la derecha muestra su representación simbólica. Además, las combinaciones de códigos que no tienen una representación simbólica en el estándar ASCII se representan mediante puntos. Se muestran dieciséis bytes por línea. En este caso, se indica a la derecha. dirección completa el byte más a la izquierda. Así, en una línea hay un volcado hexadecimal, así como un volcado ASCII de dieciséis bytes de RAM. Si el comando D se da sin parámetros, se muestran en total 128 bytes (80H) en ocho líneas. Cada línea tiene un signo "-", que divide 16 bytes por la mitad: entre el octavo y el noveno bytes.

Ejemplo. Vea los punteros vectoriales de las primeras treinta y dos interrupciones (20H).

Debes ingresar el comando

D 0:0.7F (Entrar)

E - comando para cambiar el contenido de los bytes. Este comando le permite ver el contenido de la memoria hacia adelante y hacia atrás, byte por byte y, si es necesario, cambiar el contenido de los bytes que se están viendo.

Entrada de comando:

mi<адрес>(Ingresar)

hace que el depurador cambie al modo de edición de un solo byte. Esto imprime el contenido del byte actual en formato hexadecimal, seguido de un punto. Después de esto, puede escribir el valor del contenido del nuevo byte, pero puede dejar el contenido del byte igual sin escribir nada. Luego debes escribir uno de los tres caracteres de control:

a) “espacio”, que significa pasar a editar el siguiente byte;

b) “Entrar”. Esto saldrá del modo de edición byte por byte al nivel de comando del depurador;

V) "-". Al presionar este signo se pasará a editar el byte anterior.

Ejemplo. Cambie el valor del contador del reloj del sistema.

Ingresemos el comando

y escriba cuatro números 70 70 70 70, separados por espacios, seguidos del carácter de retorno de carro 0D. A continuación, debe salir del depurador y ejecutar el comando de hora del sistema operativo.

F - comando de relleno. Este comando le permite llenar el contenido del rango especificado de RAM con una cadena repetida de bytes con los valores especificados. En particular, cuando la cadena consta de un solo byte, este comando le permite restablecer área deseada memoria cuando el byte es igual a cero, y también ingresa uno en todos los bits, llenándolo con un byte igual a FF.

El comando tiene la siguiente sintaxis:

F<диапазон_памяти> <цепочка байтов>(Ingresar)

Ejemplo. Llene el área de memoria a partir de la dirección DS:0100 con ceros para un total de 16384 bytes (4000 16).

F 100L4000 00 (Entrar)

consultar con comando

D 100L4000 (Entrar)

G - comando de inicio del programa. Este comando está destinado a iniciar el programa para su ejecución. Al mismo tiempo, si el control se transfiere al área de memoria donde se almacenan los datos como un programa, la computadora se "congela" y es necesario reiniciarla. Si el programa tiene errores graves (por ejemplo, no hay ninguna instrucción INT 20 que regrese al nivel de comando del depurador), un intento de ejecutarlo usando la instrucción G también hace que la computadora se congele.

Este operador se utiliza normalmente en una de las cuatro formas siguientes:

La ejecución de este operador se reduce a transferir el control a la dirección CS:IP. Los valores de CS e IP se pueden encontrar escribiendo el comando R (Intro) para volcar todos los registros del procesador;

b) GRAMO=<адрес>(Ingresar)

En este caso, el programa se inicia en la dirección especificada.

c) GRAMO<адрес>(Ingresar)

En este caso, el programa se inicia desde la dirección CS:IP y cuando llega al operador con dirección especificada Se ejecuta BREAK: se detiene la ejecución del programa. Un error común que cometen los principiantes es omitir el signo igual cuando usan el comando G. En este caso, la dirección especificada se percibe como una dirección de parada, y si CS:IP apunta, por ejemplo, a un área de datos, la computadora lo hará. congelar.

d) GRAMO=<адрес> <другой_адрес>(Ingresar)

en este caso, el programa se inicia desde la dirección indicada después del signo “=" y si el programa llega al comando con el valor de dirección, indicado segundo(dirección diferente), se produce una parada. Este método de detener un programa se llama introducción de un punto de interrupción. Cuando se especifica un punto de interrupción, el byte de comando correspondiente en esa dirección se reemplaza por un comando INT 3 que tiene un tamaño de 1 byte. Cuando se alcanza un punto de control, se restaura el valor original del byte.

Primero, ingresemos al programa (usando el comando A 100):

MOV,1234

DIC BX; poner aquí punto de control

Iniciemos el programa con el comando G=100 109 (Enter). El programa, habiendo alcanzado la dirección 109, se detuvo y dio. volcado completo registros

H - comando aritmético hexadecimal. Este comando le permite obtener la suma y la diferencia de dos números hexadecimales especificados en el comando.

La respuesta es 1 (suma) y FFFF (diferencia).

I - comando de entrada desde el puerto. Este comando le permite leer el contenido del puerto de E/S con la dirección especificada imprimiéndolo en la pantalla en hexadecimal.

Sintaxis del comando:

I<адрес_порта>(Ingresar)

En este caso recibiremos el contenido del puerto B desde el programable interfaz periférica 82 .

L - comando de arranque desde el disco. Este comando le permite cargar ambos sectores lógicos desde disquetes y discos duros, y archivos separados. La carga de sectores desde el disco se realiza con el comando:

l<адрес><номер_диска><начальный_сектор><число_секторов>(Ingresar)

Aquí "dirección" significa la dirección inicial en la RAM, a partir de la cual se ubicarán secuencialmente los contenidos de los bloques del sector. La variable "número de disco" indica desde qué disco se cargará. El número 0 significa unidad A, el número 1 significa unidad B, el número 2 significa unidad C, etc. Las siguientes dos variables indican respectivamente desde qué sector comienza la lectura y el número total de sectores leídos.

Cargue el bloque BOOT del disquete A: en la RAM, comenzando desde la dirección DS:1000, para lo cual debe ejecutar el comando

L 1000 0 0 1 (Introducir)

El contenido del bloque BOOT se puede imprimir con el comando

D 1000L200 (Entrar)

y también desmontar

U 1000L200 (Entrar)

norte<имя_файла>(Ingresar)

A continuación, debe ejecutar el comando L sin argumentos. Como resultado de estas acciones, el archivo (excepto los archivos con extensión EXE) se cargará en la RAM a partir de la dirección CS:100. Si el archivo descargado tiene una extensión EXE, el depurador cargará el archivo comenzando en la dirección CS:0. El número de bytes leídos se almacena en el par de registros BX:CX después de ejecutar la instrucción L.

M: comando copiar. Este comando copia el contenido de una parte de la RAM a otra área de la RAM. La sintaxis del comando es la siguiente:

METRO<диапазон> <начальный_адрес>(Ingresar)

Aquí, "rango" indica el área de memoria copiada y "dirección_inicio" indica la dirección del primer byte, a partir del cual se encuentran los datos copiados. Este comando se puede utilizar para guardar temporalmente el contenido de la RAM y luego restaurarlo.

Primero, veamos el contenido de la memoria:

D 100L100 (Entrar)

Luego guardamos parte de la memoria, comenzando desde la dirección.

M 100L100 1000 (Introducir)

Borremos el contenido original.

F 100L100 0 (Introducir)

Comprobemos el reinicio.

D 100L100 (Entrar)

Y finalmente restaurar el contenido original.

M 100L100 100 (Entrar)

N: comando para especificar un nombre. Este comando primero especifica el nombre del archivo, que luego se leerá desde el disco con el comando L o se escribirá en el disco con el comando W. La sintaxis de este comando es la siguiente:

norte<имя_файла>(Ingresar)

Leamos el archivo AUTOEXEC.BAT del disco a la RAM. Para hacer esto, hagamos

N C:\AUTOEXEC.BAT (Entrar)

El par de registros BX:CX contendrá la longitud del archivo descargado en bytes.

O: comando para enviar datos al puerto. Este comando le permite enviar el byte especificado al puerto con dirección dada. Es útil para probar el trabajo. dispositivos periféricos y edificios en placa base en modo interactivo. Sintaxis del comando:

ACERCA DE<адрес_порта> <величина>(Ingresar)

Aquí, en lugar de "dirección_puerto", se sustituye la dirección del puerto requerido en el rango 0-FFFF, y en lugar de "valor", se sustituye un valor, que luego se carga en el puerto. Si el puerto es de dieciséis bits, entonces el "valor" puede ser un número hexadecimal de cuatro bits que se carga en el puerto.

Motor de accionamiento A: para disquete se puede habilitar con el siguiente comando

O 3F2 10 (Entrar)

R: comando de rastreo de alto nivel. Este comando, al igual que el comando T, está destinado al seguimiento de programas. Sin embargo, a diferencia del trazo T, este trazo es menos detallado. No realiza un seguimiento de las subrutinas y interrupciones de software, así como bucles LOOP y comandos de cadena con repetición. Como en el caso de T-trace, después de cada comando se imprime el contenido de todos los registros y el siguiente comando ejecutable. Sintaxis del comando:

p=<адрес> <число_команд>(Ingresar)

Puedes omitir cualquiera de los dos parámetros. línea de comando: <адрес>y/o<число_команд>. Parámetro<адрес>especifica la dirección inicial desde la cual se realizará el seguimiento y el parámetro<число_команд>indicará el número total de comandos que se ejecutarán después de presionar la tecla (Enter). Es necesario ingresar el símbolo “=" al especificar la dirección para no confundir la dirección con el número de comandos a ejecutar. Este tipo de P-trace es extremadamente útil al estudiar lógica general ejecución del programa, eliminando el tedioso seguimiento de los detalles. Al estudiar inicialmente un programa, es necesario comenzar con P-trace.

Entremos, empezando por la dirección 100, próximo programa

Luego realizaremos el P-trace. Para hacer esto, primero ingrese el comando P=100 (Enter) y luego sucesivos

Después de esto, realizaremos el habitual T-trace detallado.

Q: comando para salir del depurador. El comando Q hace que el depurador salga al siguiente nivel superior nivel de programa. En este caso, los archivos de trabajo no se guardan.

R - comando de volcado/corrección de registro. Este comando le permite ver el contenido de todos los registros a la vez, así como las banderas, o ver los valores de registros individuales y las banderas con la capacidad de cambiarlos.

proporciona una copia impresa de todos los registros, así como el comando señalado por CS:IP.

R<имя_регистра>(Ingresar)

da una copia impresa del contenido del registro especificado y luego imprime los dos puntos en Proxima linea. Luego, el usuario puede presionar la tecla Intro y volver al monitor de comandos del depurador, o establecer un nuevo valor de registro antes de presionar la tecla Intro. En este último caso, el valor del registro antiguo será reemplazado por uno nuevo. Posibles nombres de registros: AX, BX, CX, DX, SP, BP, SI, DI, DS, ES, SS, CS, IP, F (registro de bandera).

Al usar el comando

Hay que tener en cuenta que los valores de las banderas están codificados de una forma muy específica. A continuación se muestra una tabla de codificación, donde el par de caracteres de la izquierda corresponde al valor 0 de la bandera correspondiente, y de la derecha al valor igual a 1 (la bandera está configurada):

Al ejecutar un comando

los valores de las banderas se imprimen en la línea en orden inverso al orden en la tabla. Inmediatamente después de esto, se imprime un signo de guión en la línea.<->, el depurador entra en un estado de espera de entrada del teclado. Si el usuario presiona solo la tecla Enter, los valores de las banderas no cambiarán y regresarán al monitor de comandos del depurador. Sin embargo, antes de esto, el usuario puede ingresar nuevos valores de algunas banderas según la tabla de codificación. El orden de aparición no es significativo.

S - comando de búsqueda. El comando de búsqueda de conjunto ordenado de bytes le permite buscar una cadena específica de bytes en un rango específico de RAM y tiene la sintaxis:

S<диапазон_памяти> <цепочка_байтов>(Ingresar)

La respuesta se emite en forma de una lista de direcciones, a partir de las cuales se ubica la cadena de bytes especificada.

Suponga que necesita determinar si la cadena de caracteres "DOS" aparece en los primeros 32 K de RAM. Para hacer esto necesitas ingresar el comando.

S 0:0L8000 44 4F 53 (Entrar)

T - comando de rastreo. Este comando le permite ejecutar uno o más comandos en modo de seguimiento, imprimiendo el contenido de todos los registros y los mnemotécnicos del siguiente decodificado. comando ejecutable. Después de rastrear la instrucción actual, el puntero IP se desplaza para que apunte a siguiente comando. Equipo

rastrea el único comando actual señalado por CS:IP y cambia la IP en consecuencia.

t<число>(Ingresar)

produce un seguimiento secuencial de varios comandos, cuyo número total se especifica en el comando.

T=<адрес>(Ingresar)

rastrea un comando hasta la dirección especificada.

forma general Los comandos T son los siguientes:

T=<адрес> <число_команд>(Ingresar)

Comando: T=FFFF:0 (Entrar)

rastrea el primer comando ejecutado cuando la computadora se inicia inicialmente.

U - comando de desmontaje. Este comando le permite desmontar programas cargados en el espacio de trabajo del depurador. Sintaxis general:

Ud.<начальный_адрес> <длина>(Ingresar)

Ud.<начальный_адрес>,<конечный_адрес>(Ingresar)

hace que se desensamblen 32 bytes, comenzando con el byte al que apunta CS:IP, y se muestra la lista resultante.

W - comando de escritura en disco. Este comando le permite escribir en un disco (disquetes o disco duro) en bloques secuenciales del rango de RAM especificado, así como escribir en archivos. Escriba en sectores en el disco usando el comando

W.<адрес><номер_диска><начальный_сектор><число_секторов>(Ingresar)

Este comando no escribe más de 80H sectores en el disco, el número de sectores no supera los 80. Parámetro<адрес>significa la dirección de la RAM, a partir de la cual se copia el contenido de la memoria al disco. Parámetro<номер диска>indica el disco en el que se está realizando la grabación (0-disco A:, 1-disco B:, ..., 80 - disco duro C:). Parámetro<начальный сектор>indica el número del sector lógico a partir del cual se cargará la imagen RAM. Parámetro<число секторов>indica el número total de sectores grabables en el disco.

Copiemos el contenido del área BIOS de la RAM a un archivo en el disco. Suponiendo la presencia de una PC/AT con un tamaño de BIOS estándar de 64K, primero restableceremos el registro BX y luego lo ingresaremos en el registro CX 2000H. A continuación, configuraremos el nombre del archivo donde copiaremos la mitad anterior del BIOS con el comando

N BIOS.COM (Entrar)

Y finalmente el equipo

W F000:E000 (Introducir)

ingresará el contenido del BIOS en el archivo BIOS.COM.





Arriba