EXTRN nombre :tipo ,,, ,,, que especifica una variable, etiqueta o símbolo externos identificados por nombre y tipo (que puede ser BYTE, WORD, DWORD, QWORD, TBYTE, NEAR, FAR, o ABS, éste último para números absolutos).
El siguiente ejemplo ilustra el uso de las directivas. El primer listado corresponde al módulo principal, mientras que el segundo al módulo que contiene una rutina. Ambos módulos son archivos que se editan por separado, se ensamblan por separado, pero se ligan juntos. MODULO PRINCIPAL: MAIN.ASM NAME
main
PUBLIC EXTRN
exit print:near
stack
SEGMENT word stack 'STACK' DW 64 DUP(?)
stack
ENDS
data data
SEGMENT word public 'DATA' ENDS
code
SEGMENT byte public 'CODE' ASSUME cs:code, ds:data
start: mov ax,data
; carga localizacion del segmento
mov ds,ax jmp print
; en el registro DS ; va a PRINT en el otro modulo
exit: mov ah,4ch code
int 21h ENDS END start
SUBMODULO: TASK.ASM NAME
task
PUBLIC EXTRN
print exit:near
data SEGMENT word public 'DATA' entrada DB "Entrando a un submodulo....",13,10,"$" salida data
DB ".......saliendo del submodulo.",01,07,13,10,"$" ENDS
code
SEGMENT byte public 'CODE' ASSUME
cs:code, ds:data
print: mov mov
ah,06h al,0
; Funcion para borrar pantalla ; todas las lineas
mov mov mov
cx,0 dh,24d dl,79d
; de 0,0
mov int
bh,0 10h
; atributo en lineas vacias ; Servicio de e/s video
mov
dx, OFFSET entrada