当前位置: 代码迷 >> 汇编语言 >> ret这个操作本质上都干了什么?该如何处理
  详细解决方案

ret这个操作本质上都干了什么?该如何处理

热度:9565   发布时间:2013-02-26 00:00:00.0
ret这个操作本质上都干了什么?
这是一个C函数的汇编代码:
int   func(int   i,int   j)
{
return   i+j;
}
汇编:
push   ebp
mov   ebp,esp
mov   eax,dword   ptr[i]  
add   eax,dword   ptr[j]  
pcp   ebp  
ret   8

上面的ret   8如果不用ret而用,pop,jmp等直接操作可行吗,代码是什么?

------解决方案--------------------------------------------------------
16位far过程的ret等价于:
pop ip
pop cs
16位near过程的ret等价于:
pop ip
32位段间返回的ret等价于:
pop eip
pop cs
32位段内返回的ret等价于:
pop eip

------解决方案--------------------------------------------------------
pop eip
pop ecs
jump ecs:[eip]
  相关解决方案