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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        - i" U, c3 L8 A. m! }* i
        local        llll, lll               8 U, [1 h7 R( o' ], U
        even+ D& |6 h( t5 g2 O
        mov        sp, offset cs:lll        
4 V& ^  R! l3 F- C        jmp        dummy
+ [3 o5 X# G' k+ n7 v+ u0 E0 c8 Illl:" f4 u* Y, I' M1 E) U
        dw        offset cs:llll                ; return address( M0 D" @+ h' H4 }! y, E
llll:1 W- r6 x9 Z8 d. j6 V1 v
endm
+ w; ^- v0 ]2 l$ A
+ H. m( z. x8 C0 ^6 W关于ret_sp这个宏我有一点没有搞明白6 _6 j1 u9 ^8 b8 \
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
% y$ K7 z" X) d为什么不能直接写成:
0 ^( b7 m  S1 {+ d  Xret_sp        macro        dummy                        
( j: P' d5 w3 a/ N5 o        local        lll               
# A( N7 U$ p- f2 p! u) K$ K$ H! i        even1 I2 @) C. s3 f9 W* L
        mov        sp, offset cs:lll        4 h: q9 }, y0 u7 w7 n( B+ F
        jmp        dummy
' L2 T) J8 s6 j9 Ylll:
7 B2 m: v9 d8 B8 ~/ V6 pendm
% t% V2 w! `, i* k$ X5 r1 F
! o, Y; s" B% K, m# L& \请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 10:00 , Processed in 0.078836 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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