• 20135320赵瀚青LINUX内核分析第一周学习笔记


    赵瀚青原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

    一、概述

    第一周的学习内容主要是基础的计算机工作的相应知识,主要学习了三个知识点

    • 存储程序计算机工作模型
    • X86汇编基础
    • 汇编一个简单的c程序并分析汇编指令执行过程

    二、存储程序计算机的工作模型

    最基础的就是冯诺依曼体系结构
    冯·诺依曼体系结构冯·诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。

    三、X86汇编基础

    同时还复习了很多关于汇编的基础知识例如

    1、寄存器

    X86处理器中有8个32位的通用寄存器。EAX通常用于计算,ECX通常用于循环变量计数。ESP和EBP有专门用途,ESP指示栈指针(用于指示栈顶位置),而EBP则是基址指针(用于指示子程序或函数调用的基址指针)。如图中所示,EAX、EBX、ECX和EDX的前两个高位字节和后两个低位字节可以独立使用,其中两位低字节又被独立分为H和L部分,应用寄存器时,其名称大小写是不敏感的,如EAX和eax没有区别。

    2、基本语句

    mov — Move

    mov指令将第二个操作数(可以是寄存器的内容、内存中的内容或值)复制到第一个操作数(寄存器或内存)。mov不能用于直接从内存复制到内存,其语法如下所示:

    push— Push stack

    push指令将操作数压入内存的栈中,栈是程序设计中一种非常重要的数据结构,其主要用于函数调用过程中,其中ESP只是栈顶。在压栈前,首先将ESP值减4(X86栈增长方向与内存地址编号增长方向相反),然后将操作数内容压入ESP指示的位置。其语法如下所示:

    pop— Pop stack

    pop指令与push指令相反,它执行的是出栈的工作。它首先将ESP指示的地址中的内容出栈,然后将ESP值加4. 其语法如下所示:

    四、汇编一个简单的c程序并分析汇编指令执行过程

    根据实例画图如下

    心得与体会

    这是第一次的LINUX课程,延续了上个学期深入理解计算机系统课程的模式,所以也并没有不适应的感觉,这周内容并不难,和上个学期的内容相似,希望在以后的学习中能够更加顺利。

  • 相关阅读:
    mysql之创建数据库,创建数据表
    mysql之group by,order by
    一个人选出2门以上不及格的课程sql语句
    GIt入门
    数据库索引工作原理
    题目:50个人围城一圈数到3和3的倍数时出圈,问剩下的人是谁?原来的位置是多少?
    约瑟夫环:递归算法
    K-means算法的java实现,聚类分析681个三国武将
    java用一个for循环输出99乘法表
    写一个基于UDP协议的聊天小程序
  • 原文地址:https://www.cnblogs.com/5320zhq/p/5225661.html
Copyright © 2020-2023  润新知