首页
社区
课程
招聘
[求助]进入函数时的代码问题 求指点
发表于: 2017-10-2 19:30 3237

[求助]进入函数时的代码问题 求指点

2017-10-2 19:30
3237

进入函数时的代码问题 求指点

debug版本

int main(){

push ebp

...

push ebx;功能?

push esi;功能?

push edi

...

请问这两个寄存器(ebx,esi)功能是什么 进入函数的代码好像也没用到..


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 5676
活跃值: (1303)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
2
ebx  esi  edi  这三个寄存器是要保存初始状态的,所以要修改的时候都必须要push保存然后函数退出的时候pop
2017-10-2 20:27
0
雪    币: 21
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
holing ebx esi edi 这三个寄存器是要保存初始状态的,所以要修改的时候都必须要push保存然后函数退出的时候pop
请问初始状态的值是干啥的  为什么要保存
2017-10-2 22:16
0
雪    币: 5676
活跃值: (1303)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
4
WandererY 请问初始状态的值是干啥的 为什么要保存
调用这个函数的函数可能在这些寄存器里面存了一些值并且假设调用一个函数不会改变他的值,所以调用的时候如果需要使用这些寄存器就必须要先保存在栈中,返回时还原
2017-10-2 23:51
0
雪    币: 21
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
holing 调用这个函数的函数可能在这些寄存器里面存了一些值并且假设调用一个函数不会改变他的值,所以调用的时候如果需要使用这些寄存器就必须要先保存在栈中,返回时还原
好的谢谢
2017-10-3 09:28
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码