标题:一个令人困惑的异常处理程序
取消只看楼主
tigerdown
Rank: 1
等 级:新手上路
帖 子:63
专家分:3
注 册:2017-8-21
结帖率:69.23%
已结贴  问题点数:20 回复次数:1 
一个令人困惑的异常处理程序
一个令人困惑的异常处理程序

这程序是从书上看到的:

困惑点1:为什么要用C语言作为参数传递规范?
困惑点2:定义了esi:ptr EXCEPTION_RECORD,但没用到,为什么要定义呢


_Handler    proc    C _lpExceptionRecord,_lpSEH,_lpContext,_lpDispatcherContext

        pushad
        mov    esi,_lpExceptionRecord
        mov    edi,_lpContext
        assume    esi:ptr EXCEPTION_RECORD,edi:ptr CONTEXT
        mov    eax,_lpSEH
        push    [eax + 0ch]
        pop    [edi].regEbp
        push    [eax + 8]
        pop    [edi].regEip
        push    eax
        pop    [edi].regEsp
        assume    esi:nothing,edi:nothing
        popad
        mov    eax,ExceptionContinueExecution
        ret

_Handler    endp
搜索更多相关主题的帖子: mov 困惑 异常处理 定义 push 
2021-11-19 17:01
tigerdown
Rank: 1
等 级:新手上路
帖 子:63
专家分:3
注 册:2017-8-21
得分:0 
这种解释比较合理,很有可能这是从win32 api doc拷贝过来的,但作为出书作者应该严谨些,至少在这里标注一下。
2021-11-20 13:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507583-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019832 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved