1.假设P为调用过程,Q为被调用过程,程序在IA-32处理器上执行,以下有关过程调用的叙述中,错误的是( )。
2.以下是有关IA-32的过程调用方式的叙述,错误的是( )。
3.以下是有关IA-32的过程调用所使用的栈和栈帧的叙述,错误的是( )。
4.以下是有关C语言程序的变量的作用域和生存期的叙述,错误的是( )。
5.以下是一个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上执行的叙述中,错误的是( )。
6.第5题中的caller函数对应的机器级代码如下:
1 pushl %ebp
2 movl %esp, %ebp
3 subl $24, %esp
4 movl $100, -12(%ebp)
5 movl $200, -8(%ebp)
6 movl -8(%ebp), %eax
7 movl %eax, 4(%esp)
8 movl -12(%ebp), %eax
9 movl %eax, (%esp)
10 call add
11 movl %eax, -4(%ebp)
12 movl -4(%ebp), %eax
13 leave
14 ret
假定caller的调用过程为P,对于上述指令序列,以下叙述中错误的是( )。
7.对于第5题的caller函数以及第6题给出的对应机器级代码,以下叙述中错误的是( )。
8.以下有关递归过程调用的叙述中,错误的是( )。
9.以下关于if (cond_expr) then_statement else else_statement选择结构对应的机器级代码表示的叙述中,错误的是( )。
10.以下关于循环结构语句的机器级代码表示的叙述中,错误的是( )。
计算机系统基础(一):程序的表示、转换与链接(第七周小测验)
原文:https://www.cnblogs.com/nonlinearthink/p/11809451.html