1.CPU是什么?

1.程序是指令和数据的组合体.
2.CPU能够直接识别和执行的只有机器语言.
3.硬盘和磁盘等媒介上保存的程序只有被复制到内存后才能运行.
4.内存中保存指令和数据的场所,通过地址来标记和制定.
5.计算机的构成元件中,根据程序的指令来进行数据运算,并控制整个计算机的设备称作CPU.
CPU负责解释和运行最终转化为机器语言的程序内容.
CPU内部由寄存器、控制器、运算器和时钟四部分构成.寄存器可用来暂存指令、数据等处理对象,可看成内存的一种,不同种类cpu会有多个寄存器.控制器负责把内存上的指令、数据等读入寄存器并根据指令的执行结果来控制整个计算机.运算器负责运算从内存读入寄存器的数据.时钟负责发出CPU开始计时的时钟信号.

    程序运行流程:C语言等高级语言-->编译后的机器语言.exe文件-->运行时在内存中.exe文件的副本-->CPU解释并执行程序内容.
  程序启动后,根据时钟信号,控制器会从内存中读取指令和数据到寄存器中,通过对指令解释和运行,运算器就会对数据进行运算,控制器根据运算结果来控制计算机.

程序是把寄存器当作对象来描述的.机器语言级别的程序时通过寄存器来处理的.也就是说,使用高级语言编写的程序在编译后转化为机器语言,然后再通过CPU内部的寄存器来处理.
寄存器的主要种类和功能
累加寄存器 存储执行运算的数据和运算后的数据 1个
标志寄存器 存储运算处理后的CPU的状态 1个
程序计数器 存储下一条指令所在内存的地址 1个
基址寄存器 存储数据内存的起始地址 多个
变址寄存器 存储基址寄存器的相对地址 多个
通用寄存器 存储任意数据 多个
指令寄存器 存储指令.CPU内部使用,程序员无法对其进行读写操作 1个
栈寄存器 存储栈区域的起始地址 1个

CPU每执行一条指令,程序计数器的值就会加1,控制器参照程序计数器的值,从内存中读取指令并执行,也就是说,程序计数器决定着程序的流程.

函数的调用机制
哪怕是高级语言编写的程序,函数调用处理也是通过把程序计数器的值设定为函数的存储地址来实现的.单纯的跳转无法实现函数的调用,函数的调用需要在完成函数的内部处理后,处理流程再回到函数的调用点(函数调用指令的下一个指令).因此,如果只是跳转到函数的入口地址,处理流程久不知道应该返回至哪里了.

机器语言的call和return指令可以解决这个问题.在函数的入口地址设定到程序计数器之前,call指令会把调用函数后要执行的指令地址存储在名为栈的主内存.函数处理完毕后,再通过函数的出口来执行return命令.return指令的功能是把保存在栈中的地址设定到程序计数器中.
CPU会把基址寄存器+变址寄存器的值解释为实际查看的内存地址.变址寄存器久相当于高级语言程序中数组的索引功能. 实际地址 = 基址寄存器的值+变址寄存器的值.
机器语言指令的主要类型和功能:
数据转送指令:寄存器和内存、内存和内存、寄存器和外围设备之间的数据读写操作.
运算指令:用累加寄存器执行算数运算、逻辑运算、比较运算和位移运算.
跳转指令:实现条件分支、循环、强制跳转等.
call/return指令:函数的调用/返回调用前的地址.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CPU是Central Processing Unit缩写, 指的是中央处理器。 CPU的内部结构 程序运行流程 ...
    JunChow520阅读 1,736评论 0 2
  • CPU CPU的作用就是解释和运行最终转换成机器语言的程序内容,CPU主要包括寄存器、运算器、控制器和时钟四个部分...
    a乐乐_1234阅读 608评论 0 0
  • [toc] 对程序员来说, CPU 是什么 概念 程序由数据和指令组成 内存地址 - 用来表示指令和数据存储位置的...
    devliu_jianshu阅读 687评论 0 0
  • 这一些列文章的主要目的:理解程序如何执行,打好基础,很多东西是我们原来在学校中学过的内容,知道的就当复习加深影响,...
    KillerManA阅读 870评论 1 1
  • 对程序员来说CPU是什么 程序是什么? 程序由什么组成? 什么是机器语言? 正在运行的程序存储在什么位置? 什么是...
    陈_振阅读 194评论 1 1