阅读以下instruction table manual我发现8-bit registers
的整数乘法通常要快得多。
在普通桌面CPU的上下文中,8-bit register
是什么意思?存储在32位寄存器中的值是否恰好在8位范围内?没有实际的8位寄存器,对吧?
答案 0 :(得分:8)
有实际的8位寄存器,它们只是完整寄存器的部分。例如,在Intel cpus上:
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 ---------------------------->|
答案 1 :(得分:2)
请参阅this excellent answer一个类似的问题。基本上,使用Intel x86架构,您可以访问寄存器的部件。你是对的,没有实际的8位寄存器,但有一些方法只能访问完整寄存器的部分。这是英特尔的一个怪癖,因为8086希望尽可能与8080兼容。随着架构从16位转换到32位再到64位,这个怪癖继续传承给新一代。通常,CPU仅支持完全寄存器访问,因此这种分区有点奇怪。
答案 2 :(得分:0)
在x86中,您可以将16位寄存器的高半部分和低半部分寻址为8位寄存器