; EX8_1.asm (Laboratory Exercise 8.1)
dseg segment para public 'data'
dseg ends
cseg segment para public 'code'
assume cs:cseg, ds:dseg
Procedure1 proc near
; MASM will emit a *far* call to procedure2
; since it is a far procedure.
call Procedure2
; Since this return instruction is inside
; a near procedure, MASM will emit a near
; return.
ret
Procedure1 endp
Procedure2 proc far
; MASM will emit a *near* call to procedure1
; since it is a near procedure.
call Procedure1
; Since this return instruction is inside
; a far procedure, MASM will emit a far
; return.
ret
Procedure2 endp
Main proc
mov ax, dseg
mov ds, ax
mov es, ax
; MASM emits the appropriate call instructions
; to the following procedures.
call Procedure1
call Procedure2
Quit: mov ah, 4ch
int 21h
Main endp
cseg ends
sseg segment para stack 'stack'
stk byte 1024 dup ("stack ")
sseg ends
end Main