过程调用讨论题.ppt_第1页
过程调用讨论题.ppt_第2页
过程调用讨论题.ppt_第3页
过程调用讨论题.ppt_第4页
过程调用讨论题.ppt_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、有关“过程调用”的练习,假设P为调用过程,Q为被调用过程,程序在IA-32处理器上执行,以下有关过程调用的叙述中,错误的是( )。 A. C语言程序中的函数调用就是过程调用 B. 从P传到Q的实参无需重新分配空间存放 C. 从P跳转到Q执行应使用CALL指令 D. 从Q跳回到Q执行应使用RET指令,1,有关“过程调用”的练习,假设P为调用过程,Q为被调用过程,程序在IA-32处理器上执行,以下是C语言程序中过程调用所涉及的操作: 过程Q保存P的现场,并为非静态局部变量分配空间 过程P将实参存放到Q能访问到的地方 过程P将返回地址存放到特定处,并跳转到Q执行 过程Q取出返回地址,并跳转回到过程P

2、执行 过程Q恢复P的现场,并释放局部变量所占空间 执行过程Q的函数体 过程调用的正确执行步骤是( )。 A. B. C. D. ,2,以下是有关IA-32的过程调用的叙述,错误的是( )。 A. 在过程中通常先使用被调用者保存寄存器 B. 每个非叶子过程都有一个栈帧,其大小为16B的倍数 C. EBP寄存器中的内容指向对应栈帧(stack frame)的底部 D. 每个栈帧底部单元中存放其调用过程的EBP内容 以下是有关IA-32的过程调用所使用的栈和栈帧的叙述,错误的是( )。 A. 每进行一次过程调用,用户栈从高地址向低地址增长出一个栈帧 B. 从被调用过程返回调用过程之前,被调用过程会释

3、放自己的栈帧 C. 只能通过将栈指针ESP作为基址寄存器来访问用户栈中的数据 D. 过程嵌套调用深度越深,栈中栈帧个数越多,严重时会发生栈溢出,有关“过程调用”的练习,3,有关“过程调用”的练习,以下是有关C程序的变量作用域和生存期的叙述,错误的是( )。 A. 静态(static型)变量和非静态局部变量都分配在对应栈帧中 B. 因为非静态局部变量被分配在栈中,所以其作用域仅在过程体内 C. 非静态局部变量可以与全局变量同名,因为它们被分配在不同存储区 D. 不同函数中非静态局部变量可以同名,因为它们被分配在不同栈帧中,以下有关递归过程调用的叙述中,错误的是( )。 A. 每次递归调用都会额外

4、执行多条指令,因而时间开销大 B. 每次递归调用都会生成一个新的栈帧,因而空间开销大 C. 每次递归调用在栈帧中保存的返回地址都不相同 D. 递归过程第一个参数的有效地址为Rebp+8,4,有关“过程调用”的练习,以下是一个C语言程序代码: int add(int x, int y) return x+y; int caller( ) int t1=100 ; int t2=200; int sum=add(t1, t2); return sum; 以下关于上述程序代码在 IA-32上执行的叙述中,错误的是( )。 A. 变量t1、t2和sum被分配在caller函数的栈帧中 B. 传递参数时

5、t2和t1的值从高地址到低地址依次存入栈中 C. 入口参数t1和t2的值被分配在add函数的栈帧中 D. add函数返回时返回值存放在EAX寄存器中,5,有关“过程调用”的讨论,为什么以下程序输出结果是x=-1217400844而不是x=100?在你的机器上执行结果是什么?每次执行结果都一样吗?反汇编后的机器级代码如何支持你的分析? int x=100; void main ( ) int x; printf(“x=%dn”, x); ,稍作修改后输出结果是什么?,6,以下是网上的一个帖子,请将程序的可执行文件反汇编(基于IA-32),并对汇编代码进行分析以正确回答该贴中的问题。 该贴给出的结果是在Linux还是Windows上得到的?为什么?,有关“过程调用”的讨论,7,有关“过程调用”的讨论,以下是一段C语言代码: #include main() double a = 10; printf(a = %dn, a); 在你的机器上执行结果是什么? 请根据汇编指令解释你的结果。,当a说明成float类型又怎样呢?,百度招聘题,如果改成以下代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论