文章内容更新请以 WGrape GitHub博客 : CPU原理之常用的寄存器 为准
前言
本文原创,著作权归WGrape所有,未经授权,严禁转载
一、介绍
寄存器只用来存储数据,数据一般分为
- 指令
- 数据
- 地址
- 变址 ( 指针 )
- 状态/标志
- 命令控制
因此寄存器按数据类型分为 :指令寄存器、数据寄存器、段寄存器、地址指针寄存器、标志寄存器、控制寄存器。
二、PC寄存器
- PC程序计数器有自增+1的功能,读取完此指向的指令后,PC会自动+1
- PC程序计数器是一个概念,常见的实现方式有
CS:IP
。
三、控制寄存器
控制寄存器(CR0~CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性。
- CR0中含有控制处理器操作模式和状态的系统控制标志;
- CR1保留不用;
- CR2含有导致页错误的线性地址;
- CR3中含有 目录-表-页 物理内存的基地址,因此该寄存器也被称为 页目录 基地址 寄存器PDBR(Page-Directory Base address Register)
四、常用的寄存器
1、常用的指令寄存器
IR指令寄存器,存储将要执行的指令
2、常用的数据寄存器
通用寄存器中的 AX - DX
(AX,BX,CX,DX)作为数据存储寄存器,常用于CPU计算过程中存放操作数或中间结果,以减少对存储器的访问次数。
3、常用的段寄存器
CS代码段寄存器、DS数据段寄存器、ES附加段寄存器、SS堆栈段寄存器
SS与SP寄存器的区别 :SS里面存放堆栈段的段地址,SP则存放偏移地址
4、常用的地址指针寄存器
BP、SP、SI、DI
BP 虽叫做基址指针,但是基址并不表示不是变址。参考https://blog.csdn.net/bagboy_taobao_com/article/details/7370504
5、常用的状态/标志寄存器
AF、CF、DF、OF、ZF