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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
! a9 C+ O9 z4 a# P5 S) D        local        llll, lll               
3 K9 B: G( z( w% c        even, K1 t2 J8 x- S6 g9 j
        mov        sp, offset cs:lll        + a2 \1 S# g# Z. r
        jmp        dummy7 _/ a# l0 _0 m, F9 M9 O
lll:
) N, \  ?' b3 b2 W        dw        offset cs:llll                ; return address. ]/ p2 }$ G8 Y
llll:
/ B& ~8 e4 a4 t8 o% f  ^endm3 n. w+ q" K- l' i* U: r( ]

( q; E# i6 L' K* B9 i0 Z" n: Q关于ret_sp这个宏我有一点没有搞明白
8 H- t3 H* |0 o; D2 @假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
# H* z( o3 M$ i! B: b为什么不能直接写成:
& j  X( k, n$ v) E! Cret_sp        macro        dummy                        : B% G7 _$ O$ c1 v1 R0 [% S
        local        lll               3 R! j. m5 O! A' {* E& y8 a: a
        even; Y0 e! W8 B! t. B
        mov        sp, offset cs:lll        ( M" D8 }: g6 y* L. m
        jmp        dummy  V! N: Y0 B1 z+ g. C4 U0 ~5 f. J( @
lll:5 {% b4 l0 ]: h, I/ @( t% ?
endm
8 r, ?2 C8 _5 n4 C- M
# o9 j6 y. J' S+ E* i  x请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 09:46 , Processed in 0.054796 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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