stacknormal.asm
来自「windows下汇编语言 学习汇编语言好助手」· 汇编 代码 · 共 58 行
ASM
58 行
;********************************
;文件:StackNormal.asm *
;功能:与StackOver一起测试在 *
; 堆栈越界时的页分配的过程 *
;********************************
.386p
.model flat,stdcall
NULL = 0
MB_OK = 0
COMMIT = 2000H
RESERVE = 100000H
extrn MessageBoxA:proc
extrn ExitProcess:proc
.data
Caption db 'Caption',0
TextNormal db 'Normal',0
TextOver db 'Overflow',0
EspTemp dd ?
.code
main:
lea eax,[esp-4*2] ;生成异常处理链表
xchg fs:[0],eax
mov ebx,offset SEH
push ebx
push eax
mov [EspTemp],esp
call WriteStack
call MessageBoxA,NULL,offset TextNormal,offset Caption,MB_OK
pop eax
pop ebx
xchg fs:[0],eax
call ExitProcess,0
SEH:
mov esp,[EspTemp]
call MessageBoxA,NULL,offset TextOver,offset Caption,MB_OK
call ExitProcess,0
WriteStack proc ;写堆栈
push ebp
mov ebp,esp
lea edi,[esp-1]
mov ecx,COMMIT + 4096
mov al,'L'
std
rep stosb
cld
mov esp,ebp
pop ebp
ret
WriteStack endp
end main
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?