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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        2 @/ a( O3 w$ J
        local        llll, lll               0 m! s  j0 [% x" {
        even: X5 Q; ]( F6 L! r) t" E" i4 L
        mov        sp, offset cs:lll        
, |$ {: \( }+ x        jmp        dummy
" |3 r& G! a+ \) V! {% E" `4 olll:4 F3 q0 H2 J+ x
        dw        offset cs:llll                ; return address
3 s& H6 h; i# o7 M2 d: y  |/ allll:
7 c* X1 T2 Z+ l7 V( sendm
+ x& `4 |: P% i9 j  s) J7 s
  L6 Y, t9 ^) k' a4 Y. T7 y$ O关于ret_sp这个宏我有一点没有搞明白/ f( M1 a+ p' v. B) R0 b/ q2 W3 h
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
: d# C* d/ V1 ~为什么不能直接写成:  W) |. Q, }4 i" t) E5 `4 _
ret_sp        macro        dummy                        
' u. i% C+ }" C6 e# Y        local        lll               
& D. c: G: k( ]$ H( p1 ?' |4 j        even0 O' @/ B! P  ?8 }
        mov        sp, offset cs:lll        
7 S9 J; \8 U2 k9 I        jmp        dummy
0 a& J) B8 x7 M+ L' P% Flll:- y2 k& ^3 m$ q, ~
endm
2 v. x) R- o  O" F" [/ w) _  M; p
请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 00:49 , Processed in 0.022212 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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