Linux内核分析——第一周:计算机是如何工作的?

之前学习了操作系统课程,对其中寄存器等汇编部分一直感到很陌生,今天点开了孟宁老师的Linux内核分析,看了第一周的计算机是如何工作的,受益匪浅。

首先将一段简单的C代码转换成汇编代码

vim a.c

Linux内核分析——第一周:计算机是如何工作的?_第1张图片
Paste_Image.png

执行以下命令,其中m32表示使用32位
gcc –S –o a.s a.c -m32
打开 a.s 删除其中点开头的行得到以下结果就是汇编代码

Linux内核分析——第一周:计算机是如何工作的?_第2张图片
Paste_Image.png

了解常见的寄存器、汇编指令

  1. 寄存器
    esp 记录栈底位置
    ebp 记录栈顶位置
    eax 记录函数返回
    eip 记录函数位置

  2. 汇编指令
    movl 赋值
    addl 加法运算
    subl 减法运算
    pushl 压栈
    popl 弹栈
    call 函数调用
    ret 函数返回
    leave 使esp、ebp回到上次的位置

分析汇编代码理解程序运行过程

Linux内核分析——第一周:计算机是如何工作的?_第3张图片
Paste_Image.png

总结

冯诺依曼提出的存储程序的计算机工作模型,是计算机最最基础性的逻辑结构,他的魅力在于能让计算机按部就班的做运算,最终返回运算结果,这也正是计算机的强项。

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

你可能感兴趣的:(Linux内核分析——第一周:计算机是如何工作的?)