期中总结(部分测试及答案)
下面哪条指令的寻址方式是直接寻址方式?
-
movl %eax, %edx
-
movw $0x123, %ax
-
movb 0x12, %ah
-
movl (%ebx), %edx
-
A.
3
-
B.
2
-
C.
1
-
D.
4
与下面两条指令等价的指令是():
pushl %ebp
movl %esp, %ebp
-
popl
-
ret
-
leave
-
enter
-
A.
1
-
B.
2
-
C.
3
-
D.
4
冯诺依曼体系结构的核心思想是存储程序计算机。
-
A.×
-
B.√
在32位x86 CPU中,我们使用push和pop指令实现入栈和出栈,popl指令可以使得esp寄存器的值增加4。
-
A.√
-
B.×
32 位x86 CPU中,cs:eip指向要执行的指令地址,所以想执行0x123处的代码,我们可以通过mov $0x123, %eip指令来跳转。
-
A.×
-
B.√
假定当前是32位X86机器,ebp寄存器的值为12,esp寄存器的值为8,执行完如下代码后esp的值是多少?
- pushl %ebp
解析: esp总是指向栈顶,在压栈时esp先减4
假定当前是32位x86机器,eax寄存器的值为0x1234,ebx寄存器的值为0x4321,执行完如下代码后ebx的值是多少?
movl %eax, %ebx
假定当前是32位X86机器,函数的返回值默认使用哪个寄存器来返回给上级函数?
函数调用堆栈与mykernel实验基础测试
我们课程内容提到的计算机工作的三个法宝不包含下面哪一项:
1. 存储程序计算机
2. 函数调用堆栈
3. 中断机制
4. CPU指令
-
A.
1
-
B.
3
-
C.
2
-
D.
4
32位x86 计算机中,cs: eip总是指向地址连续的下一条指令.
-
A.×
-
B.√
Linux中,可以使用objdump工具进行反汇编。
-
A.×
-
B.√
中断信号产生后,保存现场和恢复现场由CPU硬件单独完成。
-
A.×
-
B.√
movl 0xc(%ebp), %eax 这条指令的作用等价于 eax = *(int32_t * )(ebp + 12).
-
A.×
-
B.√
mykernel实验中,时钟中断处理函数是void my_timer_handler(void)。
-
A.√
-
B.×
32位x86 计算机中,在形成函数调用堆栈时,使用哪个寄存器指向栈底?
32位x86的Linux系统中,函数调用约定使用__stdcall方式, 调用f(x,y,z)时,需要把参数压栈,首先压入的参数是x,y,z中的哪一个?