boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 函数被调用过程到底发生什么?
相关主题
请问如果要求in place的话,递归是不是就不能用了?
也报一个Bloomberg offer
CareerCup question
还有两个题。
问道编程题
问个C/C++概念的问题
Apple的一些C++概念题
问一道c++面试题
求一面试题解答
贴两道面试题
相关话题的讨论汇总
话题: push话题: ebp话题: stack话题: function话题: describe
进入JobHunting版参与讨论
1 (共1页)
n*****g
发帖数: 178
1
被问到一个简单的题,原话是:Describe what happens when a function is called
from another function.
谁能帮忙把这个问题大致说明白了?谢谢!
d**********x
发帖数: 4083
2
push caller save registers
push callee parameters to stack
push %ebp
assign %esp to %ebp
adjust %ebp according to the new function
push pc
jump to new pc

called

【在 n*****g 的大作中提到】
: 被问到一个简单的题,原话是:Describe what happens when a function is called
: from another function.
: 谁能帮忙把这个问题大致说明白了?谢谢!

l*******b
发帖数: 2586
3
那个stack的经典回答?
save registers
push return address
push parameters
jump
貌似是这样?
n*****g
发帖数: 178
4
和stack frame有关系吧?
l*******b
发帖数: 2586
5
stack frame 就是指%ebp到%esp一段的数据吧 devilphoenix那个应该是标准答案了

【在 n*****g 的大作中提到】
: 和stack frame有关系吧?
h****n
发帖数: 1093
6

~~~
这里少了一个push return address别的基本上是对的

【在 d**********x 的大作中提到】
: push caller save registers
: push callee parameters to stack
: push %ebp
: assign %esp to %ebp
: adjust %ebp according to the new function
: push pc
: jump to new pc
:
: called

d**********x
发帖数: 4083
7
我开始记的是对的。。后来给改错了。。。
确实,push pc应该移到push ebp之前。。。
好长时间没碰汇编了

【在 h****n 的大作中提到】
:
: ~~~
: 这里少了一个push return address别的基本上是对的

f***s
发帖数: 112
8
Here has great article
http://en.wikipedia.org/wiki/Function_prologue
In case they really want to test os knowledge, follow up with harder
question, e.g stack overrun prevention
http://en.wikipedia.org/wiki/Buffer_overflow_protection
1 (共1页)
进入JobHunting版参与讨论
相关主题
贴两道面试题
没有offer郁闷, 有offer头疼.(伤人品)
c++中rand() 这个函数怎么实现的?
再请教个:C变长参数的传递问题
弱问1个python 语法
C++疑问:Animal a,Animal* a,哪种访问方式快
问个题目,函数foo() 返回1或者0。 如果10s内被调用10此以上 返回1,否则0
借人气问个C递归函数的问题
王银看kotlin(本文建议零售价 ¥15) (转载)
请教:如何用java调用外部函数,更新数据库?
相关话题的讨论汇总
话题: push话题: ebp话题: stack话题: function话题: describe