美文网首页JAVA
换个角度学C语言,计算机基本原理

换个角度学C语言,计算机基本原理

作者: xiaobing | 来源:发表于2017-04-28 21:48 被阅读0次

    说明

    上一篇文章确实缺少一些必备的知识的讲解,这一篇补上这些知识。

    CPU

    cpu是计算机最核心的组成。cpu功能很多,但我们只需要记住:运算和寻址两个功能就可以了。运算就是加减乘除,就是做“小学数学题”。寻址就是找到内存条的某个内存单位。
    cpu内部包含很多不同功能的寄存器,它们被用来直接参与运算。
    几个关键寄存器

    • eax:累加寄存器,通常也作为函数返回值
    • ebp:栈底寄存器,永远指向栈底
    • esp:栈顶寄存器,永远指向栈顶。它与ebp共同构成栈区。

    几条指令:

    • push a 把a入栈(a可以是内存的一个单元,也可以是寄存器),esp增加一个单元。
    • pop a 把a弹栈(同上),esp减小一个单元
    • mov eax, a 把a赋值给eax寄存器
      这几条指令足够了,有用到其他的,我们再介绍

    内存

    内存就是内存条,计算机核心部件之一。cpu和内存条一共有三条线相连:地址总线,数据总线,控制总线。

    • 地址总线:用来寻址的线,就是通过这个线可以找到具体的某个内存单元。32位机器地址总线就有32根细线组成每根线有2种状态,那么可以计算出2^32=4GB,这就是32位机器最大支持4GB的原因。
    • 数据总线:就是CPU和内存条之间传输数据的。32位一次传送4字节,64位传送8个字节
    • 控制总线:就是发送命令告诉内存条究竟是读还是写等操作的。

    总结

    ebp、esp分别只想内存条的两个位置构成栈区,函数执行时,局部变量就是在栈区的。CPU和内存之间存在3根线用来进行数据交互,和指令发送。计算机实际上就是在内存条上取址执行。计算机的基本原理就是这样。

    相关文章

      网友评论

        本文标题:换个角度学C语言,计算机基本原理

        本文链接:https://www.haomeiwen.com/subject/tvdazttx.html