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.
|
|
;++ ; ; Copyright (c) 1989 Microsoft Corporation ; ; Module Name: ; ; stackchk.inc ; ; Abstract: ; ; This module implements stack checking for the dos extender ; ; Author: ; ; Dave Hastings (daveh) 20-Apr-1993 ; ;--
if DBG
FIX_STACK macro local foo,foo1 push bp mov bp,pbReflStack cmp bp,offset DGROUP:bReflStack ja foo1
BOP BOP_DBGBREAKPOINT
foo1: mov bp,sp ; cmp word ptr [bp - CB_STKFRAME + 2],0AAAAH ; je foo
; BOP BOP_DBGBREAKPOINT
foo: mov word ptr [bp - CB_STKFRAME + 2],0AAAAH pop bp endm
CHECK_STACK macro local foo push bp mov bp,pbReflStack ; cmp word ptr [bp + 2],0AAAAh ; je foo
; BOP BOP_DBGBREAKPOINT
foo: pop bp endm
ifdef NEC_98
ASSERT_CLI macro endm
else
ASSERT_CLI macro local foo1
push ds push 40h pop ds test ds:[314h],0200h jz foo1
BOP BOP_DBGBREAKPOINT foo1: pop ds endm
endif ;!NEC_98
ASSERT_REFLSTK_OK macro local foo1 cmp pbReflStack,offset DGROUP:pbReflStack jna foo1
BOP BOP_DBGBREAKPOINT foo1: endm else FIX_STACK macro endm
CHECK_STACK macro endm
ASSERT_CLI macro endm
ASSERT_REFLSTK_OK macro endm endif
|