Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
;*** ;ehprolog.asm - defines __EH_prolog ; ; Copyright (c) 1994-2001, Microsoft Corporation. All rights reserved. ; ;Purpose: ; EH prolog helper function. Sets up the frame for a C++ EH function ; with unwinds, by creating a link in the __except_list, and by setting ; up EBP as frame base pointer. ; ;Revision History: ; 10-27-94 LL Module created. ; 10-27-94 CFW Comments added. ; 01-11-95 SKS Remove MASM 5.X support ; ;******************************************************************************* title ehprolog.asm .386P
.model FLAT
ASSUME FS: FLAT
PUBLIC __EH_prolog
_TEXT SEGMENT
__EH_prolog PROC NEAR push -1 ; State index push eax ; Push address of handler thunk mov eax, DWORD PTR fs:0 push eax ; List link mov eax, DWORD PTR [esp+12] ; Load return address mov DWORD PTR fs:0, esp mov DWORD PTR [esp+12], ebp ; Save old ebp on the stack lea ebp, DWORD PTR [esp+12] ; Set ebp to the base of the frame push eax ; Push return addr on top of the stack ret 0 ; JMP [eax] would be bad on P6 __EH_prolog ENDP
_TEXT ENDS
END
|