首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-02-16 
ret这个操作本质上都干了什么?这是一个C函数的汇编代码:intfunc(inti,intj){returni+j}汇编:pushebpmoveb

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]

热点排行