《程序是怎样跑起来的》读书笔记 之 第一章 对于程序员来说CPU是什么

1 热身

  1. 程序是什么?
    答:指示计算机的每一步动作的一组指令。
  2. 程序是有什么组成的?
    答: 指令和数据。
  3. 什么是机器语言?
    答:CPU可以直接识别并使用的语言。机器语言是与硬件构造密切相关的!不同的CPU具有不同机器语言。
  4. 正在运行的层序存储在什么位置?
    答:内存。程序只有被复制到内存上才能运行。
  5. 什么是内存地址?
    答:内存中用于表示命令和数据存储位置的数字,由整数值表示。
  6. 计算机的构成原件中,负责程序的解释和运行的是哪一个?
    答:CPU。

2 知识点

1. CPU

  • 说明:Central Processing Unit,中央处理器。计算机的大脑,由许多的晶体管组成。
  • 作用:解释和运行最终转换成机器语言的程序内容。
  • 组成:寄存器、控制器、运算器、时钟。
  • 寄存器:暂存指令、数据等处理对象,可看做内存的一种。不同CPU中得内部的寄存器数量也不相同。
  • 控制器: 负责把内存上的指令、数据等读入寄存器,并根据指令执行的结果来控制整个计算机。
  • 运算器:负责运算从内存读入寄存器的数据。
  • 时钟:负责发出CPU开始计时的时钟信号。1GHz=10亿次/秒,频率越高表示CPU的运行速度越快。

2. 内存

  • 说明:通常所说的内存指计算机的主存储器(main memory),简称主存。主存通常用DRAM(Dynamic Random Access Memory,动态随机存储器)芯片,需要时常通电,并时常刷新,以确保是最新数据,关机后内容自动清除。
  • 作用:主存通过控制芯片等,与CPU相连,负责存储指令和数据。
  • 组成:由可读写的元素构成,每个字节(1字节=8位)都带有一个地址编号。通过该地址读写数据。

3. 汇编语言

  • 说明: 是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。它采用助记符来编写程序,每一个原本的电器信号的机器语言指令都会有一个与之对应的助记符,助记符通常为指令功能的英语单词的简写。所以,汇编语言和机器语言基本上是一一对应的。

4. 汇编器(assembler)

把汇编语言转换为机器语言的程序。

5. 寄存器的作用

CPU是不同寄存器的集合体:机器语言级别的程序是通过寄存器来处理的。

种类 个数 功能
累加寄存器 1 存储执行运算的数据和运算后的数据
标志寄存器 1 存储运算处理后的CPU状态,保存运算后的结果(负,零,正),或者溢出和奇偶校验的结果。最后三个位可以表示负、零、正,三个位中任意个位置的数字为1则表示对应的结果,如100表示负数,010表示零,001表示正数。
程序计数器 1 存储下一条树龄所在的内存地址。程序的顺序,条件,分支的顺序,就是通过程序计数器来达成的
基址寄存器 多个 存储内存的起始地址,可以确定数组的开始地址
变址寄存器 多个 存储基址寄存器的相对地址,可以配合基址寄存器确定数组的结束地址。实际地址=基址寄存器的值+变址寄存器的值
通用寄存器 多个 存储任意数据
指令寄存器 1 存储指令,仅供CPU内部使用
栈寄存器 1 存储栈区域的起始地址

6. 程序的执行顺序

  • 顺序执行:按照地址内容的顺序执行。
  • 条件分支:根据条件执行任意地址的指令。
  • 循环:重复执行同一地址的指令。

7. 函数的调用机制:

  • 调用了哪个函数,程序计数器就会只想哪个函数的存储地址。
  • 结合了机器语言的call指令和return指令。
  • call指令:调用函数后会把调用函数后要执行的下一句的指令地址存储在名为栈的主存中。对比跳转指令而言,跳转指令只是跳转,适合分支顺序。
  • return指令:把保存在栈中得地址设定到程序计数器中去。

8.CPU的处理指令

类型 功能
数据转送指令 寄存器和内存、内存和内存、寄存器和外围设备之间的数据读写操作
运算指令 用累加器执行算数运算、逻辑运算、比较运算和移位运算
跳转指令 实现条件的分支、循环、强制跳转等
call/return 函数的调用/返回调用前的地址

9. 程序的运行流程:

  • 高级语言—>编译器编译—>机器语言—>复制到内存—>cpu解释、执行
  • 汇编语言—>汇编器汇编—>机器语言—>复制到内存—>cpu解释、执行
展开阅读全文
©️2020 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值