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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        
' {& N* j/ I* D, z        local        llll, lll               5 k. r4 R, [- R( l
        even/ }( `) n* D  j+ n  g
        mov        sp, offset cs:lll        0 O* T! L/ \7 \
        jmp        dummy
( H' G" T( {6 Flll:
! S# C  x3 y: m% T) g  R& G        dw        offset cs:llll                ; return address0 v' x# N* `# T* X( h
llll:0 c) `+ r7 o. f2 X4 X! P7 n
endm
/ m& E# Z: `) ]! @# z- C; x
( W- C4 W7 P, Q& s: [关于ret_sp这个宏我有一点没有搞明白
4 |% B) X# S! v假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?; Y8 ?2 R! m9 w! L$ G' M5 J8 ~
为什么不能直接写成:# L% z/ W, H' J4 q  Y; A! t" v
ret_sp        macro        dummy                        - v& ?+ \5 O4 k- }1 R0 i1 v" b
        local        lll               
5 T/ L, j0 v# ~2 ^0 V/ T- D" L        even
' {# y. o$ K  Q        mov        sp, offset cs:lll        
/ @3 _9 _% B! S% l" {        jmp        dummy8 D  u$ n- w0 Q0 Q
lll:
' U3 @: W( m* y/ S$ Z, p2 ~7 fendm
' i$ Y* J) D' d4 {
* J" K4 O, w/ m2 E0 j" g% C请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 19:08 , Processed in 0.061830 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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