寄存器
- 寄存器是一种高速的存储设备,用于暂时存储和快速访问CPU所需的数据。它们位于CPU内部,并直接参与到指令执行和数据处理过程中。
- 由于寄存器是一种存储设备,所以就存在读写的概念,按读写速度来讲它的速率大于CPU中的一级,二级缓存,大于内存,大于硬盘。由于CPU的运算速度太快,和内存之间存在较大的差距,所以存在利用一级,二级缓存抵消这种执行效率上的不匹配。
寄存器的几个特征
- 数量有限;最老的x86架构CPU 中,只有个寄存器,最新的CPU中寄存器的数量会增加很多。
- 功能明确,根据寄存器的功能可以分为通用寄存器,段寄存器,指针寄存器等。上面所列是常见的,通用的,参考的是最老的x86架构的 CPU。最新的CPU里寄存器的种类多出来
AX寄存器(举例说明)
- AX寄存器有位长度,那么变化就有2的次方种状态,也就是说可以存储0~2^n-1范围中的数据(2^n会进位,超出位了)
- 早期的cpu寄存器的长度只有8位,为了兼容之前的cpu的数据格式,可以将AX分为两段使用,AH(high)长度是8位,AL(low)长度是8位,这样即便是有早期的数据可以只使用地位进行处理。
- 举例说明:AX的值是,换算成进制4E20,AH代表前8位就是4E,AL代表后8位就是。这里简单说下转换逻辑:
- 为了后面好对应AH和AL,先将二进制数据分成2段8位数据,,
- AH分到的是,将二进制数据每四个再分成一段,,。4个(位)代表着2^4次方,也就是,跟进制刚好对应(这里讲的不好,因为网上有很多类似的介绍了,不具体讲了,只体现概念)。第一位0或1就代表0或1,第二位是1就代表2的1次方,第三位是1就代表2的2次方,第四位是1就代表2的3次方。是第三位是1对应的是2的2次方就是4,是2^3+2^2+2^1=8+4+2=,是进制,转换为进制就是E。AH就是4E。AL就不重复计算了。
位长的几个概念
- 寄存器可以存储一个字(word)的数据,那么这个字的长度就叫做字长,例如:的字长是16bit
- 字的概念是这个教材中定义的,我不确定是不是通用的
- 简单理解就是寄存器每次可以取多长的数据,这个数据的概念就是字
- 另外就是后面会用到word这个关键字定义数据,这个关键字本身带长度就方便编译和定义数据时计算数据的长度
- Bit位,这个指的就是这种二进制数据中的一位,也是我们口中常说的小b
- Byte字节,这个就是我们口中常说的大B,一个大B等于8小b
- Byte是编码格式的计长标准,不同编码格式编码后的数据占用的字节是不一样的,例如:针对中文进行编码,GBK编码后占2个字节,utf-8编码后占3个字节。