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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
4 v: ^4 [- U/ ?7 ~( ?        local        llll, lll               
% O1 S0 N" ~; a, g! u) n        even
/ ^7 ]$ I' F9 k0 d        mov        sp, offset cs:lll        
# U  I) s5 u  q& ]        jmp        dummy
5 s, c+ z$ S+ ~  T7 ~# dlll:
* d: D" I) l3 X5 S8 z        dw        offset cs:llll                ; return address
: X. u  _0 \! _5 e8 j' {: mllll:: z; c' z! B0 D# Q7 }1 f3 m! C
endm: E: m! d# w1 R$ C; q  t, z
- }( [# E: B" G8 y
关于ret_sp这个宏我有一点没有搞明白
$ n' y* j6 X' @* }( M, Q假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
% \* l% F  d2 G9 ~) ^为什么不能直接写成:
' j/ a! \. h' I0 Q* D! Aret_sp        macro        dummy                        
4 @; v' \* _. R4 q1 G$ ~        local        lll               
: E5 M6 Y1 b( \9 B% W' T        even
" W. k+ w0 n6 ?- r+ W        mov        sp, offset cs:lll        5 K1 m- I- o; m. R' N
        jmp        dummy. u4 v5 H( u' E+ {9 ^; U
lll:$ ~8 D9 c4 f  e4 c. u4 L
endm
! n$ n: b/ I8 z, h4 \5 g5 i6 N: J8 F# A) O( M
请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 19:21 , Processed in 0.049308 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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