En la programación en lenguaje ensamblador, ¿cuáles son los métodos para pasar parámetros entre el programa principal y los subprogramas?
Hay varias formas de transferir parámetros entre el programa principal y el subprograma en lenguaje ensamblador:
1. Método de registro
El método de registro consiste en transferir los parámetros de entrada. y los parámetros de salida se almacenan en registros acordados.
Ventajas: La transferencia de datos es rápida, fácil de programar y ahorra unidades de memoria.
Desventajas: cuando se pasan demasiados parámetros, habrá escasez de registros debido al número limitado de registros y al uso frecuente de registros.
Aplicable a: subrutinas con menos parámetros
2. Método de unidad acordado:
Como sugiere el nombre, el método de unidad acordado coloca los parámetros de entrada y salida en la unidad previamente acordada
Ventajas: no hay registros ocupados, el número de Los parámetros son arbitrarios y cada Los datos a procesar por la subrutina y la estructura enviada tienen unidades de almacenamiento independientes
Desventajas: sin embargo, usar una cierta cantidad de unidades de almacenamiento aumenta la dificultad de definir variables en la programación
3. Método de pila
El método de pila utiliza la pila para pasar parámetros.
Ventajas: Los parámetros no ocupan registros ni unidades de almacenamiento. Los parámetros se almacenan en el área de pila pública y se restauran después del procesamiento. El número de parámetros generalmente no está limitado
Desventajas: dado que los parámetros y las subrutinas se mezclan, debe calcular cuidadosamente su posición en la pila al acceder a los parámetros. Preste atención a guardar y restaurar puntos de interrupción.
4. Método de la tabla de direcciones
Este método consiste en colocar una tabla de parámetros compuesta de parámetros en un área de almacenamiento determinada, y luego, siempre que el programa principal y el subprograma estén de acuerdo con esto. área de almacenamiento La primera dirección y el contenido almacenado se pasan a la tabla de direcciones en el programa principal, y la operación se puede completar en la subrutina según los parámetros proporcionados en la tabla de direcciones.