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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        4 s  _2 B# v* w. E
        local        llll, lll               9 ^6 ]% c5 y0 E
        even
' T9 P" C, U% r, y- T        mov        sp, offset cs:lll        
6 b/ |4 U; z1 L+ A% o        jmp        dummy3 q- K' R8 V2 e+ g* q
lll:
/ M' X+ x0 v! ?/ c  F- {. ^        dw        offset cs:llll                ; return address
5 U! `# i1 L; Z: }( Z/ ollll:
8 o9 M2 H. g, R" Gendm# e/ U" U- A0 o# L; P- Q' f
# i1 k% F6 h$ ~9 h' @2 `. o
关于ret_sp这个宏我有一点没有搞明白* D0 E& ]" ?, p: l' {
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
0 u4 O3 D4 Z& m# }/ d. D为什么不能直接写成:+ p& S3 I+ G, e3 k1 ?
ret_sp        macro        dummy                        
! s+ L1 ^1 S+ f! n5 F' L        local        lll               
( n* o6 L8 i3 v        even
0 c0 o5 v1 X5 Q/ P! @* |' [# s7 X% K        mov        sp, offset cs:lll        
) |5 d% l, X* k0 V6 p% m        jmp        dummy6 W) j# y7 E7 Q
lll:
3 M5 t5 V9 s; N8 z% ~endm
3 x# p1 p6 j/ k2 `' |$ ~, \( @  H; J1 b
请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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