home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_09_01
/
9n01058a
< prev
next >
Wrap
Text File
|
1990-11-15
|
993b
|
48 lines
; Unless declared otherwise all
; values are type short
; setjmp(array pointer) : set
; environment of 3 integers,
; returns 0
; array -> bp of calling function
; sp current
; address of setjmp return
PUBLIC setjmp
setjmp PROC NEAR
;
mov bx,sp
mov ax,ss:[bx]
mov bx,ss:[bx+2]
mov ss:[bx],bp
mov ss:[bx+2],sp
mov ss:[bx+4],ax
xor ax,ax
ret
;
setjmp ENDP
; longjmp(array pointer, constant) :
; non local goto, returns constant
PUBLIC longjmp
longjmp PROC NEAR
;
xor ax,ax
mov bp,sp
mov bx,[bp+2]
mov ax,[bp+4]
or ax,ax
jne L1
inc ax
L1:
mov bp,ss:[bx]
mov sp,ss:[bx+2]
mov cx,ss:[bx+4]
mov bx,sp
mov ss:[bx],cx
ret
;
longjmp ENDP