Red de conocimiento informático - Conocimiento informático - La diferencia entre macros y subrutinas

La diferencia entre macros y subrutinas

Las macros y subrutinas están diseñadas para simplificar la escritura de programas fuente y mejorar la capacidad de mantenimiento del programa, pero tienen las siguientes diferencias esenciales entre ellas.

Diferentes métodos de referencia

El programa fuente hace referencia a la macro escribiendo el nombre de la macro y la subrutina se llama mediante la instrucción de llamada;

La longitud de el programa objetivo es diferente.

El ensamblador agrega un cuerpo de definición a la macro a través de la expansión de la macro. Cuantas veces se haga referencia a la macro, se expandirá en consecuencia, por lo que hacer referencia a la macro no acortará el programa de destino, solo aparecerá el código de subrutina; una vez en el programa de destino Cuando se llama a una subrutina para ejecutar el mismo segmento de programa, el programa de destino se simplifica en consecuencia;

Los parámetros se pasan de diferentes maneras.

Cuando se hace referencia a una macro, los parámetros se pasan reemplazando "parámetros formales" por "parámetros reales". El formato de los parámetros es flexible y diverso. Al llamar a una subrutina, se pasan a través de registros, pilas o acuerdos. unidades de almacenamiento. Parámetros;

La sobrecarga de tiempo de ejecución es diferente.

Después de expandir la declaración de referencia de macro, no habrá ninguna declaración de referencia de macro en el programa de destino y no habrá sobrecarga de tiempo adicional durante el tiempo de ejecución. Sin embargo, la llamada a la subrutina todavía existe en el destino. programa, y ​​las subrutinas de llamada y retorno toman tiempo.

Base para seleccionar el método

Cuando el fragmento del programa no es largo y la velocidad es el factor clave, se pueden usar macros para simplificar el programa fuente. Sin embargo, cuando el fragmento del programa es muy. La longitud y el espacio de almacenamiento son el factor clave. Al hacer esto, se pueden utilizar subrutinas para simplificar los programas de origen y de destino.