第一章 基础知识

计算机只认识机器码,它所能执行的只有01这两种数据,程序是由01组成,这对于维护和排错非常不友好。于是最初的大神就想到写一个编译器,用汇编语言转换成最终的机器语言

  • 存储器

    存储器会划分成存储单元,每个存储单元从0开始顺序编号,一个单元可以存储一个字节(byte).字节(byte)是计算机存储的最小单位。

  • CPU同存储器的连接通过总线,总线逻辑上分为地址数据控制三种。

    • 地址总线

      用来定位存储器单元,假设有N位的地址总线,则CPU可以寻址的空间为2N次方字节(Byte)。如: 地址总线的宽度为10时,则最大可以寻址为2**10=1024(Byte)

    • 数据总线: 用来传送存储器里面的数据

      CPU与计算机其他组件的数据传送是通过数据总线,数据总线的宽度决定了传递的速度,8根总线可以传送一个字节(Byte)

    • 控制总线: 用来发送控制信息给存储器

      CPU对外部设备的控制是通过控制总线发出的,控制总线的宽度决定了对外部设备有多少种控制能力

  • 计算机系统中,所有可用设备都必须受到CPU的控制,但CPU对外部的设备不能直接控制,直接控制这些设备工作的是扩展插槽上的接口卡,扩展插槽通过总线和CPU相连。

  • CPU把所有外部设备总的看作是一个由若干个存储单元组成的逻辑存储器,它们在同个存储器地址中

  • 我们在基于一个计算机硬件编程的时候,必须知道这个系统的内存地址空间分配情况,当向存储器写数据时,需要知道它的第一个地址和最后一个地址

  • 最终运行程序的是CPU,我们用汇编编程的时候,必须要从CPU的角度考虑问题。对CPU来说,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制