程序与CPU(PO学校 计算机科学 笔记整理)
来源:互联网 发布:网络凶杀2视频 编辑:程序博客网 时间:2024/06/07 08:28
程序与CPU的关系
1.程序是什么?
程序可以理解为算法(指令【一段段安装从上到下,有特定目的规律排列的指令就是算法】)+ 数据。
2.程序由什么组成?
显而易见,程序有指令和数据组成。
3.什么是机器语言?
机器语言即,机器可以读懂的语言。也就是所谓的低级语言,有低级语言就有高级语言,比如:C语言,Java等。高级语言是人类可以都读懂的语言。
4.运算中的程序储存在什么位置?
运算中的程序储存在内存当中。程序在编译完成之后,被系统加载到内存当中,CPU(通过 总线)从内存中读取 指令和数据。
5.什么是内存地址?
目前解释不清楚。
6.语言的演化进程。
最开始的程序员是用插拔线,然后是1001010011指令,然后为了方便记忆,汇编,一直到现在在用的高级语言。
CPU组成:
1.寄存器(程序员可以接触到的):短暂存储数据的地方(可以理解为CPU中的内存)
2.运算器:逻辑运算单元
3.控制器:将寄存器读取,写入,更换。
4.时钟:计算频率。(1GHz=10 亿次/秒)
寄存器(最重要的,可以接触到的):累加寄存器,标志位寄存器,程序计数器,基址寄存器,变址寄存器,通用寄存器,指令寄存器,栈寄存器。
累加寄存器:运算后的数据。
标志位寄存器:记录运算状态(32位二进制),(是否溢出,是否为零,。。。)是计算机可以执行逻辑运算的关键。
程序计数器:存储下一条指令在内存中的地址。(可能会跳转,可能会顺序执行)
基址寄存器:当前数据内存开始的地址。
变址寄存器: 存储基址的相对地址。(例如当前内存的开始地址是1000,相对地址是50,那么目前实际的地址就是1050)
通用寄存器:都可以用。
指令寄存器:CPU内部使用(程序员是用不了的,不对外开放的)
栈寄存器:记忆栈的起始位置。
程序执行 <条件分支> 过程:
程序被操作系统加载到内存中,CPU通过总线读取 数据和指令,运算器,控制器,寄存器依照时钟的计算频率,开始工作,累加寄存器 存放累加后的数据,标志位寄存器 被 置位 ,改写 程序计数器的地址(是否跳转已经被决定)。完成分支的执行。
- 程序与CPU(PO学校 计算机科学 笔记整理)
- 二进制 (Po学校 计算机科学 笔记整理 )
- 操作系统 (Po学校 计算机科学 笔记整理)
- 汇编和可执行文件(Po学校 计算机科学笔记整理)
- 内存 (Po学校 计算机科学 笔记整理)
- Po学校C++第二课课堂笔记
- Po学校Python第一课(输入输出)
- Po学校Python第二课()
- 文件拷贝以及sock的基本使用(基于PO学校网络课)笔记
- po学校作业_使用CreateProcess分别启动以下程序
- lesson1 计算机科学篇之CPU与二进制
- Po学校Lesson12
- Po学校Python第三课(list元组循环)
- 计算机科学与Python编程导论_MIT 学习笔记(一)
- 计算机科学与Python编程导论_MIT 学习笔记(二)
- 计算机科学与Python编程导论_MIT 学习笔记(三)
- 计算机科学与Python编程导论_MIT 学习笔记(四)
- 计算机科学与Python编程导论_MIT 学习笔记(五)
- 第2章开箱使用
- LintCode之41 最大子数组
- Java char(字符)和String(字符串)
- Linux命令集锦
- 一个Angular的开发脚手架
- 程序与CPU(PO学校 计算机科学 笔记整理)
- phpexcel 导出格式,字体调整
- hdu 6219
- 带你了解真正的String类的intern()方法
- [BZOJ1717]-[Usaco2006 Dec]Milk Patterns-后缀数组Height模板题
- Bootstrap(十二)
- leetcode 492. Construct the Rectangle
- 2017.12.12
- 无缝滚动