• 2020-2021-1 20209306 《linux内核原理与分析》第二周作业


    一、实验一内容及分析

    1.实验一内容过程截图

    2.实验一完成后收获

    可以看到汇编代码中出现了eax、esp、ebp。eax是累加寄存器,esp是堆栈指针寄存器,ebp是基指针寄存器。汇编代码中用到了movl指令和pushl指令,
    其中movl %esp %ebp是把寄存器%esp中的内容放到%ebp中。相当于C语言代码的ebp = esp
    另外pushl %ebp就是把ebp寄存器的值压倒堆栈栈顶。这就与上面的代码组成了保存和恢复的过程。

    二、学习linux《庖丁解牛》第一章“计算机工作原理”遇到的问题和学习收获

    1.没有正确理解“值”的含义:

    pushl指令包含两个动作,其中第一步将寄存器的值减4,学习中没有正确理解值减4的含义,经过学习和同学的指导后,得知“值”和“字节”关系,1值是8字节,pushl指令是将寄存器值压倒堆栈栈顶,因此在32位中值应减4.

    2.没有正确理解间接寻址的含义:

    在寄存器上加一个小括号,例如将%esp变为(%esp),加括号指将其表示为其所指向的内存地址,若放在movl指令后的第一个代码,则表示将这个内存地址所存储的数据放到后面的寄存器中,若放在movl指令的后面的第二个代码,则表示把前面寄存器的值放到间接寻址寄存器所指向的地方。

    3.学习到的新指令:movl、pushl、popl、call、ret。

  • 相关阅读:
    粘包现象
    SOCKET的简单介绍
    jQuery基本语法
    Bet(The 2016 ACM-ICPC Asia China-Final Contest 思路题)
    World Cup(The 2016 ACM-ICPC Asia China-Final Contest dfs搜索)
    Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找规律)
    HDU
    Yin and Yang Stones(思路题)
    在线数学公式编译器
    HDU
  • 原文地址:https://www.cnblogs.com/maobenhao/p/13830302.html
Copyright © 2020-2023  润新知