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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        $ r5 q" `- b. c  c/ d0 T
        local        llll, lll               
4 j! ]5 d. [( @9 i        even  C# C3 g8 }! |* H' j
        mov        sp, offset cs:lll        
7 L$ I8 `$ [: r        jmp        dummy- g4 y5 ^& k* O( p1 F  w
lll:+ u% P7 M5 y: F3 x$ M
        dw        offset cs:llll                ; return address
% s% {( M' ]3 ?8 e- @/ V% T5 ~3 Ollll:/ `/ O+ h: j0 L* a/ m0 p
endm
; `% M  V# g* d9 E! i, f: t
4 n! u  E$ w% C1 h# H2 h关于ret_sp这个宏我有一点没有搞明白1 E, p4 g5 Q) Z8 X: p
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
8 \2 M9 [# C+ a0 R$ W  ^4 _为什么不能直接写成:
# E0 l  D, J7 bret_sp        macro        dummy                        # H& }* K, G& e4 v9 H
        local        lll               ' R! C7 V7 [( m. E
        even6 ~, K5 ^9 O7 V
        mov        sp, offset cs:lll        
! P) U) O  n; e* X" c% r7 ~0 ~/ m        jmp        dummy3 z' u6 d) t5 D3 _* {& W, @+ k
lll:
5 y6 N7 @6 p1 {. ?' S8 [$ ?endm" A0 |. e0 c; \

$ b+ {. x7 ]& x# |% k" ?5 R" R请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 17:03 , Processed in 0.046238 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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