Duda: PROC - ENDP [8086]

Duda: PROC - ENDP [8086]

de Gustavo Chalela Nuñez -
Número de respuestas: 1

Hola, tengo una duda respecto del uso de PROC Y ENDP. En las diapositivas y los videos de openfing del curso aparece:
nombreProc PROC 
....
nombreProc ENDP

Pero en las soluciones de los exámenes aparece así:
PROC nombreProc
....
ENDP

¿Quisiera saber si hay algúna incorrecta o se pueden usar ambas indistintamente? En caso que haya una correcta, ¿cual es?

O depende si se usa la directiva NEAR ó FAR?
Otra preguntita chiquita, ¿Cuándo se usa NEAR? FAR se que es para interrupciones, pero NEAR?

Muchas gracias!

En respuesta a Gustavo Chalela Nuñez

Re: Duda: PROC - ENDP [8086]

de Gustavo Brown -

Lo usual es 

Nombre Proc

.....

Nombre Endp


Igualmente aceptamos el otro caso

Por defecto un Proc es near y uno explícitamente pone FAR cuando quiere que sea far.

Es parte de las directivas del ensamblador. Si el Proc es near los RET que aparezcan dentro del procedimiento serán de tipo near (solo quitar IP del stack), y si es far usa la versión que quita también el CS. 

Si el Proc es near todas las llamadas a él (CALL o JMP) son de la variante Near (solo cambian el IP) y si es Far también cambian el CS. En ambos casos si es un call se pushean los registros que corresponden (IP si es near e IP y CS si es far)

Saludos,

  Gustavo