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

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

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

vim a.c

Paste_Image.png

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

Paste_Image.png

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

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

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

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

Paste_Image.png

总结

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容