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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        8 u1 j8 i# E! v0 w' |( g$ a
        local        llll, lll               
  ?" f# s4 F9 p0 s' M        even' X# j3 @4 {, a7 w; `+ J! E
        mov        sp, offset cs:lll        7 _- u/ ?) P+ F! ~- p5 K
        jmp        dummy! Q8 d# ]8 a$ g7 y9 n* @
lll:
& o8 H: \7 W2 A. l0 P  A4 F2 y$ h, d        dw        offset cs:llll                ; return address; F% u$ T) Z2 M9 X/ Q6 }
llll:1 ~7 R# U, K; L( ^$ e3 x
endm
* S; M: V0 ?! R. Z  n6 G
6 u4 i% _9 a4 Y4 k# ^关于ret_sp这个宏我有一点没有搞明白" H+ F2 L$ y* p* i$ u: K
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
8 T# G# g  V; z' h为什么不能直接写成:$ |0 d' i- @" {5 y5 @1 w" w
ret_sp        macro        dummy                        3 H! D5 H* x! Q$ c8 M& d( K
        local        lll               
/ F  Q1 W' x6 k% m        even: U2 }+ R% x; _( d( ~# b
        mov        sp, offset cs:lll        * ]" M; b, W( f" p) m
        jmp        dummy
- S% g. N3 f2 C4 }! Y! G, rlll:; u: b5 C. w, L, @: _
endm4 d9 Q1 R0 D0 [, P% K- h. r
9 x' a# @6 D. ?( G2 _, n3 ^
请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-22 00:30 , Processed in 0.079803 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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