zoukankan      html  css  js  c++  java
  • 计算机是如何工作的

    知识点:

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

    cpu通过总线与内存连接,依靠ip指针依次从内存中取出一条指令执行。

    API:程序员与计算机的接口界面。

    ABI:程序与CPU的接口界面。

    寄存器、寻址方式和各类指令在学习《深入理解计算机》和《汇编》时已做了详细了解,不再赘述。

    实验:

    截图入下:

    原代码为:

    int g(int x)
    {
    return x+3;
    }

    int f(int x)
    {
    return g(x);
    }
    a
    int main(void)
    {
    return f(8)+1;
    }

    汇编代码为:

    g:
    pushl %ebp
    movl %esp, %ebp
    movl 8(%ebp), %eax
    addl $3, %eax
    popl %ebp
    ret
    f:
    pushl %ebp
    movl %esp, %ebp
    subl $4, %esp
    movl 8(%ebp), %eax
    movl %eax, (%esp)
    call g
    leave
    ret
    main:
    pushl %ebp
    movl %esp, %ebp
    subl $4, %esp
    movl $8, (%esp)
    call f
    addl $1, %eax
    leave
    ret

    代码非常简单,只要记住

    pushl %ebp 等价于 subl $4,%esp movl %ebp,(%esp)

    leave 等价于 movl %ebp,%esp popl %ebp

    popl %ebp 等价于 movl (%esp),%ebp addl $4

    call是将返回地址也就是当前eip的值压入栈顶,然后跳转到函数的起始地址

    ret弹出返回地址到eip继续执行下面的指令

    计算机的工作原理:

    就是按照程序的编排,cpu从内存中一个一个取出指令和数据并执行。

    作者:胡御风

    原创作品转载请注明出处

    《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

  • 相关阅读:
    Ubuntu安装gfortran
    Ubuntu12.04安装vscode i386
    PowerShell让系统可以执行.ps1文件
    Gitlab. Disable user creation on welcome page
    开源项目和工具列表
    布隆过滤器 (Bloom Filter)
    信息系统综合知识概览
    Hadoop实战之四~hadoop作业调度详解(2)
    Hadoop实战之三~ Hello World
    Hadoop实战之二~ hadoop作业调度详解(1)
  • 原文地址:https://www.cnblogs.com/huyufeng/p/5221952.html
Copyright © 2011-2022 走看看