CPU具有数据总线和地址总线.可以具有相同的宽度,但它们通常不是.
堆栈指针是指向内存的指针,因此它通常与地址总线一样宽,除非内部使用某些(奇怪/模糊)转换.指令指针(指向当前指令)也是指向存储器的指针,并且如指针一样宽.
其他寄存器主要处理数据,因此具有与数据总线相同的尺寸.但像往常一样,也有例外.
举一个老例子.6502.一个8位cpu(8位数据总线,16位地址总线).它具有(或多或少)通用寄存器X和Y,以及称为A的"累加器".所有8位寄存器.存在堆栈指针和指令指针,堆栈指针具有8个显式位和8个隐式位(堆栈总是在相同的256字节区域中),因此堆栈指针寄存器具有8位,指令指针具有16位.
8086具有16位数据总线和20位地址总线.一般寄存器在哪里8(和16位).指令指针和堆栈指针所在的16位,但使用段寄存器(也是16位)来获得完整的20位地址.