home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / CCDL122.ZIP / CLIBS / PROCONT / 386 / SETJMP.ASM < prev   
Encoding:
Assembly Source File  |  1996-08-02  |  627 b   |  41 lines

  1.     .386
  2.     .model small
  3.     PUBLIC _setjmp,_longjmp
  4.     .code
  5. _setjmp:
  6.     mov    eax,[esp+4]
  7.     mov    [eax],ecx
  8.     mov    [eax+4],edx
  9.     mov    [eax+8],ebx
  10.     mov    [eax+12],esp
  11.     add    dword ptr [eax+12],4
  12.     mov    [eax+16],ebp
  13.     mov    [eax+20],esi
  14.     mov    [eax+24],edi
  15.     mov    ecx,[esp]
  16.     mov    [eax+32],ecx
  17.     mov    ecx,eax
  18.     sub    eax,eax
  19.     lahf
  20.     mov    [ecx+28],eax
  21.     sub    eax,eax
  22.     ret
  23. _longjmp:
  24.     mov    eax,[esp+4]
  25.     mov    ecx,[esp+8]
  26.     mov    esp,[eax+12]
  27.     push    ecx
  28.     mov    ecx,[eax+32]
  29.     xchg    [esp],ecx
  30.     push    ecx
  31.     mov    ecx,[eax]
  32.     mov    edx,[eax+4]
  33.     mov    ebx,[eax+8]
  34.     mov    ebp,[eax+16]
  35.     mov    esi,[eax+20]
  36.     mov    edi,[eax+24]
  37.     mov    eax,[eax+28]
  38.     sahf
  39.     pop    eax
  40.     ret
  41.     end