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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
4 X1 M8 ?( d2 l. e% k$ }. B        local        llll, lll               
9 w" P/ m8 s; x% p        even) `+ N" ^1 D6 d
        mov        sp, offset cs:lll        
% H+ G8 ^6 V" l5 x7 W, ?        jmp        dummy
; ^5 K1 D# j, r  p- Dlll:6 _! z$ C' c/ O( R
        dw        offset cs:llll                ; return address  O) a4 Y' |) K: ~8 a1 O* e4 O
llll:
/ n# p( ~' m1 Z4 {4 N6 f1 U+ Tendm
1 N) o; M& v, q: H
$ w# ~& q" R3 W$ T8 u关于ret_sp这个宏我有一点没有搞明白2 f9 o. v( u! C  i( P
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?5 [, s) ~1 D6 N9 I+ F1 i
为什么不能直接写成:- U2 O/ h# e0 Y0 b5 S8 G
ret_sp        macro        dummy                        : R/ T9 _/ x- D! N/ A
        local        lll               ( j# u, @5 x/ j2 o, Q
        even" W7 I& a5 k' f; q
        mov        sp, offset cs:lll        " P6 S3 o% [3 s1 K
        jmp        dummy! [; g5 R7 t6 W4 g3 J5 r
lll:- s4 [1 P  D5 D. E# ?
endm
( Q2 K7 \' X, x2 T0 _- Y5 n/ y+ w; [
请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-3 23:14 , Processed in 0.344510 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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