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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        ! A  m2 Z* d. }: x, m- ^
        local        llll, lll               5 U1 V; g# _, }1 q
        even
/ u& G0 D4 d" y% H        mov        sp, offset cs:lll        , J2 F. {; t# r7 P( n2 w4 q  ]
        jmp        dummy
0 X6 {& J# b. _0 g  }lll:0 R' f, ^& |" z3 Z
        dw        offset cs:llll                ; return address
9 q) y% R# R9 Xllll:# [$ U  D" z: |5 g3 k
endm  c" n; y. n) @% N- m* B

/ H, e, t0 K* r+ d! M$ [关于ret_sp这个宏我有一点没有搞明白
0 P' l& B) n7 s7 v1 B6 M7 S3 {6 W假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
1 A$ p# {/ w  @# c4 y! u  g/ s5 a# p为什么不能直接写成:
) P, d3 O- X# Y3 }0 Q$ v. Qret_sp        macro        dummy                        
( |4 _7 {1 f; y) T( ?, z        local        lll               
) L4 z( p8 d2 F% B+ m. j. u        even% q! N: }+ s' M# x: r
        mov        sp, offset cs:lll        6 r' ?) D0 q9 W; c5 v* `, j& c7 K
        jmp        dummy1 A3 z% L/ ~( ]/ ?# q% C
lll:
3 F- J" e# e/ x* U1 Mendm9 `: j( r; t, l+ j2 g+ S

5 o- G3 @+ W% i! M请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 09:03 , Processed in 0.110370 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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