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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        ) O- N/ b( N9 E0 P6 i* X
        local        llll, lll               
1 }! ~7 e+ o+ k6 h8 d  k1 K( g        even
$ n# W7 f/ v: j8 I1 j2 J        mov        sp, offset cs:lll        ' D- z: _2 F2 \
        jmp        dummy% u  [# E* e; i4 o1 K! l5 B
lll:
" L. ]9 T& g$ Y1 v* }        dw        offset cs:llll                ; return address
1 G  m4 ^0 k$ z" Y" y2 ^llll:
! A: r# Q' s* `( fendm
9 k4 d. _8 ?" y: ^9 o( x9 E# \
( [' i2 S0 J5 E# ^2 P2 H6 m  ?关于ret_sp这个宏我有一点没有搞明白
* c7 w& T* q+ Y: n假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?. Y" @3 {9 [* G9 z6 f
为什么不能直接写成:
- D+ n2 v8 b) w- cret_sp        macro        dummy                        " `1 v3 ]# q( Z9 [9 W8 [
        local        lll               6 r7 l8 K- R  T# k
        even# ]. C% a3 P# [
        mov        sp, offset cs:lll        3 r9 W( w' i! v! a; U; J2 `
        jmp        dummy
2 Z# G, t" I$ f- z/ Xlll:  M% K( w% e0 v' q5 ~
endm
) l  |3 T1 H0 N% }$ p1 G! c
  K. |2 T: K& M  p( T; n  b* b请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 13:40 , Processed in 0.019276 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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