Optimization 桌面cpu上的8位寄存器是什么?
通读以下内容,我发现对于Optimization 桌面cpu上的8位寄存器是什么?,optimization,x86,cpu,cpu-registers,8-bit,Optimization,X86,Cpu,Cpu Registers,8 Bit,通读以下内容,我发现对于8位寄存器,整数乘法通常要快得多 在普通桌面cpu环境中,8位寄存器意味着什么?32位寄存器中存储的值恰好在8位范围内?没有实际的8位寄存器,对吗?有实际的8位寄存器,它们只是完整寄存器的一部分。例如,在英特尔CPU上: AL 8-bit AH 8-bit AX 16-bit EAX 32-bit RAX 64-bit 图片: 63 32 24 16 8 0 |--
8位寄存器
,整数乘法通常要快得多
在普通桌面cpu环境中,
8位寄存器
意味着什么?32位寄存器中存储的值恰好在8位范围内?没有实际的8位寄存器,对吗?有实际的8位寄存器,它们只是完整寄存器的一部分。例如,在英特尔CPU上:
AL 8-bit
AH 8-bit
AX 16-bit
EAX 32-bit
RAX 64-bit
图片:
63 32 24 16 8 0
|-------|-------|-------|-------|-------|-------|-------|-------|
|<- AL->|
|<- AH->|
|<----- AX ---->|
|<------------ EAX ------------>|
|<---------------------------- RAX ---------------------------->|
63 32 24 16 8 0
|-------|-------|-------|-------|-------|-------|-------|-------|
||
||
||
||
||
在x86中,您可以将16位寄存器的高半部和低半部处理为8位寄存器请参见类似问题。基本上,使用Intel x86体系结构,您可以访问寄存器的一部分。您是对的,没有实际的8位寄存器,但是有一些方法可以只访问完整寄存器的一部分。这是英特尔的一个怪癖,因为8086希望尽可能与8080兼容。随着体系结构从16位到32位再到64位的转变,这种怪癖也随之延续到了新一代。通常,CPU只支持完全寄存器访问,因此此分区有点奇怪。不要将延迟与吞吐量混淆-只是因为指令具有更高的延迟,并不意味着它一定是慢的。8位寄存器乘法也有更好的吞吐量。在某些x86 CPU上,这是正确的。