Red de conocimiento informático - Conocimiento sistemático - ¿Cómo se definen las subrutinas en lenguaje ensamblador?

¿Cómo se definen las subrutinas en lenguaje ensamblador?

Definido así:

Nombre del subprograma PROC NEAR|FAR

.

.

RET

Nombre del subprograma ENDP

El nombre del subprograma equivale a una etiqueta, que indica la dirección simbólica de este proceso. Hay dos tipos de procedimientos: los procedimientos de tipo NEAR y FAR se pueden llamar entre segmentos, mientras que los procedimientos de tipo NEAR solo se pueden llamar dentro de segmentos.

En un proceso debe haber al menos una instrucción de retorno RET, que puede escribirse en cualquier parte del proceso, pero la última instrucción ejecutada por el proceso debe ser RET.

Información ampliada:

Notas

1. Instrucciones de llamada de subprograma

Formato: CALL [NEAR PTR] nombre del subprograma

Las dos funciones de la instrucción CALL son: 1. Empujar la dirección del punto de interrupción (la dirección de la siguiente instrucción de la instrucción CALL) en la pila y guardarla, 2. Transferir a la subrutina para su ejecución.

[NEAR PTR] se puede omitir.

2. Instrucción de retorno

Formato: RET?[N]

Función de instrucción: implementar la instrucción para regresar al programa principal después de ejecutar la subrutina. . Extraiga una palabra de datos de la parte superior de la pila (llamada dentro del segmento) y envíela a IP como dirección de retorno. N es un número inmediato después de ejecutar RET, SP aumenta en N, lo que también se denomina "pila plana".