首页
社区
课程
招聘
[旧帖] [求助]汇编指令中的 带立即数返回指令的作用主要是什么? 0.00雪花
发表于: 2011-8-21 11:30 1940

[旧帖] [求助]汇编指令中的 带立即数返回指令的作用主要是什么? 0.00雪花

2011-8-21 11:30
1940
不带立即数的返回是
ret

它可以平衡堆栈,并且将栈中保存的指令指针给 指令指针寄存器,

那么

ret   n
它的功能是什么?
携带返回值吗?

[课程]Linux pwn 探索篇!

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
用于 __stdcall 调用协议,由被调用者清理栈

   push 1
    push 2
    call func
    ... ...




func:
    push ebp
    mov ebp, esp

    ... ...

    mov esp, ebp
    pop ebp

    ret 8                      ; 清调用函数时栈
2011-8-21 11:36
0
雪    币: 128
活跃值: (111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是用来清理堆栈,清理压入的参数。
2011-8-21 12:17
0
雪    币: 39
活跃值: (2686)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
汇编语言中,返回值通常都是通过对EAX赋值实现,ret 后面所跟的n绝对不是返回值。
ret n的执行过程如下:
EIP = dword ptr  ss:[esp]
ESP = ESP + 4
ESP = ESP + n
2011-8-21 13:51
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
上面几位说的都对。我就不重复答案了。cool:
2011-8-21 22:38
0
游客
登录 | 注册 方可回帖
返回
//