首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是桌面cpu上的8位寄存器?

什么是桌面cpu上的8位寄存器?
EN

Stack Overflow用户
提问于 2011-11-16 17:39:42
回答 3查看 1.7K关注 0票数 2

通过阅读下面的instruction table manual,我发现8-bit registers的整数乘法通常要快得多。

在普通桌面cpu的情况下,8-bit register是什么意思?存储在ie 32位寄存器中的值恰好在8位范围内?没有真正的8位寄存器,对吧?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-16 17:42:21

有实际的8位寄存器,它们只是整个寄存器的一部分。例如,在Intel cpus上:

代码语言:javascript
复制
AL  8-bit
AH  8-bit
AX  16-bit
EAX 32-bit
RAX 64-bit

在图片中:

代码语言:javascript
复制
63                             32      24      16       8       0
|-------|-------|-------|-------|-------|-------|-------|-------|
                                                        |<- AL->|
                                                |<- AH->|
                                                |<----- AX ---->|
                                |<------------ EAX ------------>|
|<---------------------------- RAX ---------------------------->|
票数 8
EN

Stack Overflow用户

发布于 2011-11-16 17:51:38

请参阅this excellent answer来回答类似的问题。基本上,使用英特尔x86架构,您可以访问寄存器的一部分。你是对的,没有实际的8位寄存器,但有方法只访问整个寄存器的一部分。这是英特尔的一个怪癖,因为8086希望尽可能地与8080兼容。随着体系结构从16位过渡到32位再到64位,这种怪癖随后被延续到新一代。通常,CPU只支持全寄存器访问,所以这种分区有点奇怪。

票数 2
EN

Stack Overflow用户

发布于 2011-11-16 17:43:36

在x86中,您可以将16位寄存器的高半部分和低半部分寻址为8位寄存器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8149480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档