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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        ' X9 b' A3 f  x5 e
        local        llll, lll               $ h% r+ o. @% b! C
        even' `  z; N  L0 P( W: S. g
        mov        sp, offset cs:lll        2 f+ w  `. J* x" K" L3 J# n9 l
        jmp        dummy
% w, e# g$ K$ A8 ]% c* a6 Tlll:/ s% w* t* H; x
        dw        offset cs:llll                ; return address
5 ^& a* {/ b$ vllll:
3 L0 t; v" b: @, P3 cendm- j( k" w6 d( j8 K+ L

* b. d! i' q+ W. ^7 S关于ret_sp这个宏我有一点没有搞明白6 l( e# \8 l- r3 w- q1 m( N
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?% p- O& K! ]) p& F6 L# m
为什么不能直接写成:
' k6 Y! k' V9 Qret_sp        macro        dummy                        ( m( u$ Z: T  d) s$ C, X8 F
        local        lll               8 Z% I8 f0 S/ C( O/ Q8 b% j& [
        even
$ L2 m; P9 V4 D: ~$ B        mov        sp, offset cs:lll        
" M# u0 n/ C1 w3 Y1 w        jmp        dummy
- z/ `7 ^; O: s: R0 g) t! Flll:1 R$ Q( c0 u  N; I
endm
( t# b7 Z& E' z5 y  V
5 \- w# q5 a; R( o4 U请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-1 21:34 , Processed in 1.960549 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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