gpt4 book ai didi

cpu - 堆栈宽度是否始终与 CPU 寄存器大小相同?

转载 作者:行者123 更新时间:2023-12-04 14:03:03 25 4
gpt4 key购买 nike

例如,对于 8 位 CPU,堆栈大小预计为 8 位宽,16 位 CPU 与 16 位堆栈宽度,以及 32 位、64 位 CPU,等等。是否适用于所有架构?

最佳答案

CPU 具有数据总线和地址总线。它们可以具有相同的宽度,但通常不是。

堆栈指针是指向内存的指针,因此它通常与地址总线一样宽,除非在内部使用了一些(奇怪的/晦涩的)转换。指令指针(指向当前指令)也是指向内存的指针,和栈指针一样宽。

其他寄存器主要处理数据,因此与数据总线具有相同的维度。但像往常一样,也有异常(exception)。

举个老例子。 6502。一个8位cpu(8位数据总线,16位地址总线)。它具有(或多或少)通用寄存器 X 和 Y,以及称为 A 的“累加器”。所有 8 位寄存器。有一个堆栈指针和一个指令指针,堆栈指针有8个显式位和8个隐式位(堆栈总是在同一个256字节的区域中),因此堆栈指针寄存器有8位,指令指针有16位。

8086 具有 16 位数据总线和 20 位地址总线。 8位(和16位)的通用寄存器。指令指针和堆栈指针是 16 位,但使用段寄存器(也是 16 位)来获得完整的 20 位地址。

关于cpu - 堆栈宽度是否始终与 CPU 寄存器大小相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1311740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com