CPU

  • CPU是集成了==控制器,运算器,寄存器,时钟==的终端,它负责将我们的==汇编语言==解释为==机器语言==,从而供底层微处理器执行。他们通过==总线==相互连接,传递数据和指令。

    • 寄存器:用于==暂存指令==,==等对象==。是内存的一种
    • 控制器:负责将内存上的指令数据==读入寄存器==并依据结果==控制整个计算机==,主要是输入输出时间的控制。
    • 运算器:负责运算寄存器中的数据,并把结果输出。
    • 时钟:发出CPU开始计时的时钟信号。(==信号频率越高,CPU运行越快==)

内存

  • 内存指的是计算机的主存储器,负责存储指令和数据。==每个字节都有一个地址编号==,cpu通过它来读取指令与数据。

CPU与寄存器

  • CPU是寄存器的集合体,程序将寄存器作为对象来描述。
  • 汇编:指的是将汇编语言转化为机器语言。
  • 寄存器种类多样:比如有==程序计数器==,==标志寄存器==,累加寄存器,==基址寄存器==,==变址寄存器==等。

寄存器与程序执行

  • 寄存器中的程序计数器被赋予了分配程序执行顺序的能力。当硬盘中的文件被复制到内存后,程计会被==设定为初始值0100==,然后开始运行,==每当==CPU执行完一个指令,程计中的数值都会进行==累加==操作。CPU会按照程计的数值,从内存中读取命令并执行。
  • 循环,顺序,条件分支:这三种执行方式组成了程序的流程。
    • 条件分支:如果在程序执行的过程中,需要有条件分支语句,那么在程计中,遇到这个语句,==会将程计的数值设置为对应的地址数值==,这个操作被称为==jump==。

Pasted image 20240417091436

  • ==标志==寄存器:标志寄存器主要的作用为将累加寄存器中的结果==状态==进行记录,比如正负奇偶都会将其进行保存。所以在条件分支前,由其判断是否进行jump。标志寄存器==前三个字节分别表示正0负三种状态==。

  • 标志寄存器的判断,实际上是对数值进行==减法==运算,通过结果设定状态。 ^3cacdc

  • 函数的调用

    • 函数在调用时,在程计中会存在一个==函数调用点==。
    • call,return指令:call指令在函数入口地址设定到程计前,会把==函数调用后==要执行的地址存储在栈中。
      栈相关:[[内存与数据类型#栈]]
      函数处理完后,在通过函数出口来执行==return==指令,将栈中的地址设定到程计中。
  • 基址寄存器与变址寄存器:通过这两个寄存器,我们可以对主内存上特定的内存区域进行划分,从而实现类似数组的操作。数组相关:[[数组部分]]

    • CPU会将基址寄存器和变址寄存器中的==值之和==视作实际要去查看的内存地址。变址寄存器相当于==数组索引功能!==