程序与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通过总线读取 数据和指令,运算器,控制器,寄存器依照时钟的计算频率,开始工作,累加寄存器  存放累加后的数据,标志位寄存器 被  置位  ,改写  程序计数器的地址(是否跳转已经被决定)。完成分支的执行。