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