CPU的组成部分

从功能方面看,CPU的内部由以下四部分组成:

  • 寄存器:寄存器用来暂存指令,数据等处理对象,可以看作是内存的一种。
  • 控制器:负责把内存上的指令,数据等读入寄存器,并根据指令的执行结果来控制整个计算机。
  • 运算器:负责运算从内存读入寄存器的数据。
  • 时钟:负责发出CPU开始计时的时钟信号。不过,也有些计算机的时钟位于CPU的外部。时钟信号以Hz(赫兹为单位),代表每秒的频率,时钟信号的频率越高,CPU的运行速度越快。

CPU的四个构成部分中,程序员只需要重点了解寄存器即可。

不同类型的CPU,其内部寄存器的数量,种类以及寄存器存储的数值范围都是不同的。不过根据功能的不同,我们可以将寄存器大制划分为八类。其中,程序计数器累加寄存器标志寄存器指令寄存器栈寄存器都只有一个,其他的寄存器一般有多个。

种类功能
累加寄存器(accmulator register)存储执行运算的数据和运算后的数据
标志寄存器(flag register)存储运算处理后的CPU的状态
程序计数器(program counter)存储下一条指令所在内存的地址
基址寄存器(base register)存储数据内存的起始地址
变址寄存器(index register)存储基址寄存器的相对地址
通用寄存器(general purpose register)存储任意数据
指令寄存器(instruction register)存储指令。CPU内部使用,程序员无法通过程序对该寄存器进行读写操作
栈寄存器(stack register)存储栈区域的起始地址

几个寄存器使用的实例

  1. 标志寄存器:比较有意思的是,程序的比较操作就是在cpu内部利用标志寄存器做减法运算,例如X > Y,就是把X - Y的结果存在标志寄存器中,如果结果为负,表示X小于Y,反之则大于。
  2. 程序计数器:函数的调用,就是把程序计数器的值设定为函数的存储地址来实现。
  3. 基址寄存器和变址寄存器:通过这两个寄存器,我们可以对主内存上特定的内存区域进行划分,从而实现数组的索引功能。例如,当查看10000000 ~ 1000FFFF地址时,可以将10000000存入基址寄存器,并使变址寄存器的值在00000000 ~ 0000FFFF变化。CPU则会把基址寄存器+变址寄存器的值解释为实际查看的内存地址。

最后,CPU的处理其实很简单,机器语言指令其实也就以下四大类。

类型功能
数据转送指令寄存器和内存,内存和内存,寄存器和外围设备之间的数据读写操作
运算指令用累加寄存器执行算术运算,逻辑运算,比较运算和移位运算
跳转指令实现条件分支,循环,强制跳转等
call/return指令函数的调用/返回调用前的地址
  • 9
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值