La diferencia entre macros y subrutinas
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.