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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
  ^  C; W6 ]8 C% n        local        llll, lll               
. i, r3 v9 C7 ^        even6 W1 V, _& b# ^3 U8 m- x2 D5 z
        mov        sp, offset cs:lll        * Y/ n2 z8 ?/ t" |- ^, J
        jmp        dummy
$ ]" c$ y' g. {7 r, i+ glll:3 E/ w* l- E' g& `3 C5 z2 ~7 D
        dw        offset cs:llll                ; return address- I0 V+ P/ t# F% r2 Y
llll:
+ N6 \9 X% ^3 G& R# `" y% `  eendm
$ g3 `  J' ?/ Z0 q' W
5 N8 `$ G- I) j; L关于ret_sp这个宏我有一点没有搞明白! w6 Z. T- w( W& I8 d5 E
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
. p7 j) m- ?, `- \$ y为什么不能直接写成:+ {/ ?* t8 d) [6 A' ?7 Q
ret_sp        macro        dummy                        2 P- V# f2 o  {0 h
        local        lll               
' t$ C; ]  r) B. R4 p- N        even: w( C- i$ ]$ J0 ]
        mov        sp, offset cs:lll        
3 i0 b7 p% Y5 n7 e        jmp        dummy
5 w- z, H  F* h5 {9 b: |% w: rlll:( k. x7 |: m( A3 \, U
endm
6 H( S  b, S/ B. l" B
( b' {, w* P- [+ Q' Z. l请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-8 08:24 , Processed in 0.108087 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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