找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 7887|回复: 1

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        ; r8 j' d" a5 T+ |4 J$ E" Y- ~. @
        local        llll, lll               
* e& F! e( r9 G        even: Y! o  y# _* {% ^! s* w
        mov        sp, offset cs:lll        
0 G( V/ w2 k% `        jmp        dummy
& F9 T* I/ O& L0 u6 Illl:
! K; V+ I9 F* O; ~( T, o        dw        offset cs:llll                ; return address0 G+ Q, r) U* R
llll:
7 c7 ?# L$ G% z/ @endm6 L- S8 S" J3 m

/ Y3 P' _! v+ M5 E8 t; ~关于ret_sp这个宏我有一点没有搞明白
& d4 l. V/ v5 ?% ^- }假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?* ?0 I5 r8 A. R3 O( Y
为什么不能直接写成:4 u4 e3 j: V- F+ W7 |3 R
ret_sp        macro        dummy                        
5 ?" Y3 g- n6 ?0 u9 s( D$ D9 g        local        lll               * t$ T) d7 b! c# z+ a
        even' [7 Z& E2 Q( t: G0 }8 A; n
        mov        sp, offset cs:lll        3 h% a3 e) \0 K2 \
        jmp        dummy
) W" b8 l5 Z) alll:
: n2 @1 j$ u/ ?2 h, v  j; jendm
# W% q/ ?4 l+ D9 \0 _# e
/ V, W) X  X% k$ p请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-3-15 06:47 , Processed in 0.283401 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表