Sei sulla pagina 1di 4

REPORTE DE PRACTICA

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. 

La organización de un programa en procedimientos proporciona los beneficios


siguientes:

1. Reduce la cantidad de código, ya que un procedimiento común puede ser


llamado desde cualquier lugar en el segmento de código.
2. Fortalece la mejor organización del programa.
3. Facilita la depuración del programa, ya que los errores pueden ser aislados
con mayor claridad.
4. Ayuda en el mantenimiento progresivo de programas, ya que los
procedimientos son identificados de forma rápida para su modificación.

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.

Ahora el CS:IP apunta a la instrucción que sigue al CALL original en la llamada del


procedimiento, en donde se reasume la ejecución. Llamada y regresos
lejanos. Una llamada (CALL) lejana llama a un procedimiento etiquetado con FAR,
tal vez en un segmento de código separado. Un CALL lejano mete a la pila al CS y
al IP, y RET los saca de la pila.
 
Un buen procedimiento debe:

 Hacer solo una tarea.


 Ser tan pequeño como sea posible y tan largo como sea necesario.
 Contener un comentario con su propósito, datos de entrada y salida.
 Entenderse por sí solo.
 Funcionar como lo haría una instrucción del microprocesador.
 No usar variables globales ni para recibir datos, ni regresar un resultado, ni
almacenar temporalmente resultados intermedios.

Uso de un procedimiento

En esta ocación les pongo el ejemplo de como usar un procedimiento dentro un


programa en ensamblador, como se declara y como se llama.

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.

Un procedimiento se declara de la siguiente manera:


nombreProc PROC [near/far]
Instrucciones a ejecutar
[ret]
nombre ENDP

Las directivas PROC y ENDP indican el inicio y el fin del procedimiento,


nombreProc indica el nombre del procedimiento, debe ser único y no debe tener el
nombre de una directiva o palabra reservada.

 Near/far depende si la operación implica un procedimiento cercano o lejano.

 La instrucción ret regresa al segmento donde fue invocado el


procedimiento.

 La llamada a un procedimiento se hace mediante call nombreProc.


I.- Identificar los Procedimientos en Lenguaje Ensamblador que
se especifican a continuación: (Editar en Emu8086)

 Programa #1 “Estructura de un Procedimiento”

 Programa #2 “Mi primer Procedimiento”

 Programa #2 “Operaciones básicas, usando menú y


procedimientos en Lenguaje Ensamblador”

https://www.youtube.com/watch?v=O9KjOcu9EuY&t=331s

Potrebbero piacerti anche