简单介绍一下指令集:
分为精简指令集与复杂指令集
复杂指令集最著名的应该是intel的X86指令集
因为其发展时间长,所以使用的人数最多,兼容行较好,生态较完善。但是其是复杂指令集,使用功耗较大,让人不断诟病。
精简指令集最著名的应该是ARM架构
其因为功耗低,体积小,所以经常被使用在手机等功耗较小的移动端上面。 然而较高的专利收费成本,因此最近一年左右,有许多的芯片设计厂商转向了开源的RISC-V 架构(精简指令集)。
在这之前先进行cpu介绍以及cpu运行机制(简单介绍)
cpu组成部分:
1、寄存器,用来暂存指令数据等处理对象; 2、控制器,把内存上的指令、数据等读入寄存器; 3、运算器,负责运算从内存读入寄存器的数据; 4、时钟,负责发出CPU开始计时的时钟信号。
电脑运行机制(基本)
从硬盘中读取数据到内存条,从内存条到到缓存,从缓存到控制器,从控制器到寄存器,从寄存器到运算器进行运算。之后,按照这个方向反向输出。
按照寄存器种类进行分类
- 数据寄存器
- 变址寄存器
- 指针寄存器
- 指令指针寄存器
- 标志寄存器
X86寄存器简单介绍
4个数据寄存器(eax、ebx、ecx和edx)
每一个寄存器都是16位,一般可以分层独立的8位。分层独立的8位之后的名称分别变成了ax:ah-al、bx:bh-bl、cx:ch-cl、dx:dh-dl。 听这个名字知道是进行知道是储存数据的,然后进行数据传入给运算器
这4个还有其他的名称(作专门相关与数据的事情,以提高运算效率 专能专用)
eax和eal通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。 寄存器bx称为基地址寄存器(Base Register)。用于存储内存中数据存放的基础位置.
寄存器cx称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作 中,当移多位时,要用CL来指明移位的位数; 寄存器dx称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。[^1]: 还有其他的名字,在这里不再进行讨论
4个指针的指针寄存器(ebp,esp,ebp和esp)(还是可以进行计算)
CPU有2个32位通用寄存器ebp和esp. 2个32位访问堆栈内的存储单元 ebp为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据; esp为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。
ARM寄存器介绍
通用寄存器(数据寄存器)
其分为31个64位的寄存器从X0到X30,一般用于数据储存,但是其还可以作为一些情况的专能专用。
SP和FP寄存器(指针寄存器)
sp寄存器保存我们栈顶的地址. fp寄存器称为x29寄存器属于通用寄存器,但是在某些时刻我们利用它保存栈底的地址! 如果照片侵犯了你的产权,请告诉我,我感到抱歉
|