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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
: I( J3 _8 @; T2 O( w        local        llll, lll               ' ]& p0 L" u; P2 C8 N
        even, ]7 [# F' `8 X5 a2 b
        mov        sp, offset cs:lll        , t+ ?) l7 f- Y& @. Y
        jmp        dummy5 R9 J6 p4 H' h& O3 f
lll:
. S" S9 H$ P; `, }        dw        offset cs:llll                ; return address
# t4 D$ s7 d3 j4 b6 d6 T: Zllll:
; |* U% i7 ~; hendm$ e7 d: j& U( c8 B2 z

& K2 `+ ~6 P1 j& S4 D! `9 N关于ret_sp这个宏我有一点没有搞明白
5 k1 F* u- Y0 t7 {6 i假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?7 b6 k: }1 B" t! i
为什么不能直接写成:. t. \2 u9 [  f/ C6 W' V! K
ret_sp        macro        dummy                        
$ l4 ^; r* V9 T. }        local        lll               & R% w8 U% ]# R0 N& Q+ i: F: ]
        even5 v, V# E) T# @5 j; ~6 N
        mov        sp, offset cs:lll        / w8 o3 T) ~8 }; G9 v3 o3 ]
        jmp        dummy
$ d  s/ j+ y0 B. v2 @/ [lll:
5 n2 [& \% `$ O" E- Aendm3 }8 `& o- p5 n$ i7 v

9 j& H9 k3 @. e6 m6 H* T( O请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-18 20:10 , Processed in 0.140071 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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