¿Qué es un programa para residentes?

Programa residente Un programa residente es un tipo especial de aplicación en la que parte del código permanece en la memoria después de cargarse y ejecutarse, y entra en estado de ejecución cuando esa parte del código se activa. Un programa residente generalmente se usa como parte de un controlador de interrupciones y se activa cuando el sistema genera una solicitud de interrupción para esa interrupción. [Edite este párrafo] Descripción general de los programas residentes DOS es un sistema operativo de usuario único y su programa principal no permite la reentrada. Específicamente, si queremos escribir una llamada recursiva, colocaremos los parámetros en la pila en lugar de usar la configuración. método variable, de modo que no haya peligro de que se cambien variables temporales cuando regrese el programa del siguiente nivel, y la interrupción INT 21H se procesa junto con DOS si aparece otro INT 21H en el proceso INT 21H y el segundo INT 21H después. una vez completada la ejecución, regrese al primer INT 21H, luego los datos temporales guardados no serán los datos anteriores, sino la 'basura' que queda después de ejecutar el segundo INT 21H, y se creará un residente en la memoria. ', compila un programa residente en memoria y abre una ventana en cualquier momento para ejecutar la función INT 21H. Si desea evitar fallas, primero debe resolver el problema del reingreso de DOS.

Hay dos formas de resolver el problema de reentrada. La primera es guardar artificialmente la estructura de datos interna de DOS en su propio búfer antes de ingresar a INT 21H y luego restaurarla una vez completada la ejecución. El método se basa en los datos internos de DOS, y la estructura de datos y la ubicación de los datos de diferentes versiones de DOS son diferentes, lo que es bastante difícil de usar y no es compatible con las versiones más recientes de los sistemas operativos. Se desconoce la compatibilidad con versiones más recientes de sistemas operativos.

El método común es detectar primero el estado de DOS y luego activar el programa residente. Si DOS está inactivo, se puede activar inmediatamente. Si DOS está ocupado, debe esperar hasta que DOS esté inactivo antes de activarse. . Este artículo analiza métodos para detectar el estado de DOS.

De hecho, el propio DOS ha considerado más o menos este problema. Tiene un indicador de InDOS. Al ejecutar una función de DOS, hará +1 en este indicador y saldrá -1. , lo que significa que algunas funciones de DOS obtienen la dirección del indicador InDOS cuando implementan la subfunción INT 21H 34H de la función DOS. El primer byte de este indicador es la dirección de la función DOS y el primer byte de este indicador es la dirección. dirección de la función DOS. Un byte es la dirección de la función DOS. El primer byte de este indicador es la dirección de la función DOS. El byte que precede a este indicador es el indicador de error de emergencia de DOS. Hay dos situaciones especiales en el juicio de ocupado de DOS. Una es que en caso de un error de emergencia, DOS reducirá el indicador de InDOS, por lo que cuando detecta que InDOS es 0, también debe juzgar que el indicador de error es 0, y puede hacerlo. ingrese a DOS de manera segura; otra situación es que algunas funciones de DOS se permiten volver a ingresar. Estos comandos de entrada no necesitan ingresarse en el área de datos interna. Por ejemplo, cuando se espera la entrada del comando y DOS ejecuta la subfunción de entrada. InDOS es 1.0, luego InDOS es 1.0. Por ejemplo, cuando espera la entrada del comando, DOS ejecuta la subfunción de entrada. En este momento, InDOS es 1, pero en realidad está permitido ingresar a DOS. En este caso, DOS enviará continuamente interrupciones INT 28H y el INT original. La función 28H devuelve inmediatamente el INT 28H original sin hacer nada. Los usuarios pueden colgar sus propios programas en INT 28H sin preocuparse por el reingreso de DOS.

/tongji.js">