• 期中总结


    期中总结(部分测试及答案)

    下面哪条指令的寻址方式是直接寻址方式?

    1. movl %eax, %edx

    2. movw $0x123, %ax

    3. movb 0x12, %ah

    4. movl (%ebx), %edx

    • A.

      3

    • B.

      2

    • C.

      1

    • D.

      4

    正确答案: 
     

    与下面两条指令等价的指令是():

        pushl %ebp 

        movl %esp, %ebp

        

    1. popl

    2. ret

    3. leave

    4. enter

        

    • A.

      1

    • B.

      2

    • C.

      3

    • D.

      4

    正确答案: 
     
    判断(1分)

    冯诺依曼体系结构的核心思想是存储程序计算机。

    • A.
      ×
    • B.
    正确答案: 
    4
    判断(1分)

    在32位x86 CPU中,我们使用push和pop指令实现入栈和出栈,popl指令可以使得esp寄存器的值增加4。

    • A.
    • B.
      ×
    正确答案: 
    5
    判断(1分)

    32 位x86 CPU中,cs:eip指向要执行的指令地址,所以想执行0x123处的代码,我们可以通过mov $0x123, %eip指令来跳转。

    • A.
      ×
    • B.
    正确答案: 
    6
    填空(1分)

    假定当前是32位X86机器,ebp寄存器的值为12,esp寄存器的值为8,执行完如下代码后esp的值是多少?

    1. pushl %ebp
    正确答案:4
    解析: esp总是指向栈顶,在压栈时esp先减4
    7
    填空(1分)

    假定当前是32位x86机器,eax寄存器的值为0x1234,ebx寄存器的值为0x4321,执行完如下代码后ebx的值是多少?

    movl %eax, %ebx

    正确答案:0x1234
    8
    填空(1分)

    假定当前是32位X86机器,函数的返回值默认使用哪个寄存器来返回给上级函数?

    正确答案:eax 或 EAX 或 %eax

    函数调用堆栈与mykernel实验基础测试

    已经超过规定的测试次数或提交截止时间已过。你可以作为自我学习进行测验,但提交的结果将无法获得学分。
    1
    单选(1分)

    我们课程内容提到的计算机工作的三个法宝不包含下面哪一项:

    1. 存储程序计算机

    2. 函数调用堆栈

    3. 中断机制

    4. CPU指令

    • A.

      1

    • B.

      3

    • C.

      2

    • D.

      4

    正确答案: 
    2
    判断(1分)

    32位x86 计算机中,cs: eip总是指向地址连续的下一条指令.

    • A.
      ×
    • B.
    正确答案: 
    解析:顺序执行总是指向地址连续的下一条指令,有分支/跳转时不是。
    3
    判断(1分)

    Linux中,可以使用objdump工具进行反汇编。

    • A.
      ×
    • B.
    正确答案: 
    4
    判断(1分)

    中断信号产生后,保存现场和恢复现场由CPU硬件单独完成。

    • A.
      ×
    • B.
    正确答案: A
    5
    判断(1分)

    movl 0xc(%ebp), %eax 这条指令的作用等价于 eax = *(int32_t * )(ebp + 12).

    • A.
      ×
    • B.
    正确答案: B
    6
    判断(1分)

    mykernel实验中,时钟中断处理函数是void my_timer_handler(void)。

    • A.
    • B.
      ×
    正确答案: 
    7
    填空(1分)

    32位x86 计算机中,在形成函数调用堆栈时,使用哪个寄存器指向栈底?

     
    正确答案:ebp 或 EBP
    8
    填空(1分)

    32位x86的Linux系统中,函数调用约定使用__stdcall方式, 调用f(x,y,z)时,需要把参数压栈,首先压入的参数是x,y,z中的哪一个?

     
    正确答案:z
  • 相关阅读:
    Grakn Forces 2020 I. Bitwise Magic
    October Challenge 2020 Division 1
    杂题
    杂题
    杂题
    hdu 6868
    Codeforces Round #673 (Div. 1)
    杂题
    2019 ICPC World Finals K
    【CSP2019】括号树 题解(递推+链表)
  • 原文地址:https://www.cnblogs.com/20135213lhj/p/5427973.html
Copyright © 2020-2023  润新知