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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
5 I2 x7 W1 N" y, @9 Q. U0 u3 S        local        llll, lll               
9 F6 f0 ]  {* t3 l/ d        even; Q0 A8 B9 [* o' s% }
        mov        sp, offset cs:lll        
" q% I; t9 }" g+ C( m, B        jmp        dummy
8 s4 ]& T( E( g$ Z6 t# }" x  Qlll:
) a1 e; G  ?3 U& j; u1 p. k9 i        dw        offset cs:llll                ; return address
: M6 }/ N3 T& H( r8 ~llll:
$ S, |1 ?7 n8 S2 G0 p/ Pendm% U5 J! m, S! H
7 C! H3 r5 d6 F0 `1 v! h
关于ret_sp这个宏我有一点没有搞明白
/ `3 {) W( f+ L. q+ q5 {假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
1 b; h) S: Q' {5 d为什么不能直接写成:
$ T) J7 J% ?! s+ ]  kret_sp        macro        dummy                        
* q$ `& v( M+ o/ O" g        local        lll               
* }0 [1 ?5 r/ Q        even- p5 E  ^$ G1 O  _; I4 ^
        mov        sp, offset cs:lll        
$ q0 n) C/ _1 D" ]" b! P        jmp        dummy( x$ C. O0 |3 @, _
lll:
1 f% ]7 c" C+ T8 G- P5 Vendm
: p; |# s4 i4 R! d# K2 X: f! }
7 `  K( c1 [6 u: ?请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 22:46 , Processed in 0.055864 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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