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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
$ \( l6 y* g4 b8 o9 x        local        llll, lll               
7 Z( C, F; r# N# v$ j5 C7 G        even- h) U  ^, p: Z; l( F
        mov        sp, offset cs:lll        ; h, `: t0 J5 M- x
        jmp        dummy8 z1 ?0 d2 h7 W9 w
lll:
3 d0 r! R9 S  L+ A; p        dw        offset cs:llll                ; return address
0 H* a( F  q& K. u, q8 vllll:
" [9 H" X9 A- L( k( l8 w1 D3 a9 z% _endm
' s% d% ?% l8 Q; V! h# g! t8 w9 t1 M% `6 _2 @$ l$ O& p
关于ret_sp这个宏我有一点没有搞明白, @/ C% i0 H' Q$ K! e' C2 W9 ]' \% |
假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?
1 {2 M$ I1 e; P4 H' R/ q为什么不能直接写成:
0 L- u; k& _6 S& L3 yret_sp        macro        dummy                        ( q" C8 S- G" J6 e  h8 ~! \
        local        lll               
2 X/ Y: G7 z5 q- Y6 g2 z  M/ U- U0 q        even4 j# v  ~1 o9 ^: z
        mov        sp, offset cs:lll        
3 S+ o; P3 \& I) |! L! {  p        jmp        dummy) k. l8 E2 V) y4 E8 U- S
lll:; y( N* I' p. k: S: T* U" z; u
endm
3 d/ ]+ K  p- ?0 _# f2 B
! [+ _4 u# ^' w* L1 c请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-1 17:41 , Processed in 0.272304 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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