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

关于ret_sp这个宏的问题

[复制链接]
发表于 2009-9-17 10:17:46 | 显示全部楼层 |阅读模式
ret_sp        macro        dummy                        7 L7 G! C0 `; w3 z
        local        llll, lll               2 j+ B% ~% Z; j9 `; B* z
        even" |; r# ?' Q* R$ P# G9 F
        mov        sp, offset cs:lll        
$ Q% X, |9 y5 K* v        jmp        dummy
! Q" R. }9 ]8 J0 slll:
& I# y; `' b1 {        dw        offset cs:llll                ; return address( Z9 a, G. v0 E2 A7 w
llll:
+ ]3 z! q2 Z) b7 aendm+ @  J0 H# N+ D' b
4 `/ i' F+ q2 ~: V
关于ret_sp这个宏我有一点没有搞明白
9 f- P9 y  H5 R+ W假设lll的地址为200h,那么mov        sp, offset cs:lll这条语句就是把200h赋给了SP,而jmp dummy中的dummy函数最后的ret语句相当于直接把sp pop给了IP,也就是说dummy执行完以后,IP直接回到了lll处,那么还要llll这个标号干什么呢?% [2 O( w- |  L" m$ D
为什么不能直接写成:( U1 f2 |8 }& C$ P. Z, S9 ?+ f+ P
ret_sp        macro        dummy                        . P& D. T; T( A9 h4 W9 F0 w
        local        lll               
8 a% g5 o' B7 M, _, c" S" T        even
7 M- a* A; N! S( N        mov        sp, offset cs:lll        4 ?9 R  m7 P- H9 d
        jmp        dummy
; I5 G4 h+ i) @, z# Alll:
( T6 O. [! @  r5 J1 ~endm: \2 I/ ?) q0 Q( }: }# f/ O

# ~4 v" `( L& j6 @请知道的指点一下,谢谢!
 楼主| 发表于 2009-9-17 19:49:24 | 显示全部楼层
问题已经解决,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-8 08:27 , Processed in 0.453550 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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