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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
% w. S! P  M5 B! m        local        llll, lll               
% z3 S: ]( q: q/ D8 a0 f, U# n        even
2 h: n2 i! Y' s; L+ d        mov        sp, offset cs:lll          @* f0 p* B" L) m
        jmp        dummy5 k% k6 E, [$ B- X4 ^* ^3 k: i
lll:. A3 f9 _3 q  m
        dw        offset cs:llll                ; return address  M5 I3 g2 L- S  ]' O
llll:
/ F* y, w$ M; q' @: N' Cendm/ w5 v6 C# ?# F" D7 M

( T8 T; t, Z7 E- K. ~关于ret_sp这个宏我有一点没有搞明白8 F2 l, S& a3 Q
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
* Z, P4 R4 P0 o! ^8 ]! ?为什么不能直接写成:6 @  o- j" k1 U$ C5 V: A
ret_sp        macro        dummy                        ; {8 y( Y  {/ W% J; I
        local        lll               
$ X4 T' C& a; N. H( n9 {        even
6 m7 G  z, I1 _, Y+ t# q        mov        sp, offset cs:lll        ) _, B) L  ~% N. B4 Y# ]
        jmp        dummy
" s  |7 X, [3 ^lll:
$ [+ L; A$ }8 u' r0 Nendm
3 l* F& F7 x0 t' Y' h+ d
3 j% }" s  O5 v5 \  b& R) T: m' k请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-19 19:05 , Processed in 1.876750 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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