Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PARTE 1
“MODULARIZACIÓN”
3.1 Procedimientos
Los procedimientos son una colección de instrucciones que realizan una tarea
específica. Dependiendo de su extensión y complejidad, un programa puede
contener uno, algunos o inclusive cientos de procedimientos. Para emplear un
procedimiento en un programa se requiere definirlo y llamarlo. Al definir un
procedimiento escribimos las instrucciones que contiene. Al llamar al
procedimiento transferimos el flujo al procedimiento para que sus instrucciones se
ejecuten.
Un procedimiento en ensamblador es aquel que inicie con la palabra PROC y
termine con la palabra RET.
Las partes que componen a un procedimiento son:
• Declaración del procedimiento
• Código del procedimiento
• Directiva de regreso
• Terminación del procedimiento
Las macros ofrecen una mayor flexibilidad en la programación comparadas con los
procedimientos, pero no por ello se dejarán de utilizar estos últimos.
Tipos de Procedimientos
Llamada y regresos cercanos. Una llamada (CALL) a un procedimiento dentro del
mismo segmento es cercana y realiza lo siguiente:
Disminuye el SP en 2 (una palabra)
Mete el IP (que contiene el desplazamiento de la instrucción que sigue
al CALL) en la pila.
Inserta la dirección del desplazamiento del procedimiento llamado en
el IP (esta operación vacía el resultado de la instrucción previamente procesada)
Un RET que regresa desde un procedimiento cercano realiza lo siguiente:
* Saca el antiguo valor de IP de la pila y lo envía al IP (lo cual también vacía el
resultado de la instrucción previamente procesada).
* Incrementa el SP en 2.
Uso de un procedimiento
Los procedimientos son algo similar a los métodos en un lenguaje de alto nivel,
son llamados para ejecutarse y al terminar continuará la linea siguiente después
de haber llamado el procedimiento, los procedimientos son usados para realizar
tareas en específico como lo puede ser imprimir cierto mensaje en pantalla o
hacer alguna operacion aritmética.
https://www.youtube.com/watch?v=O9KjOcu9EuY&t=331s