【发布时间】:2022-01-18 07:07:47
【问题描述】:
这本书说:
第 6.01 节介绍了寄存器传输符号的扩展。我们可以用它来描述 指令的执行。例如,LDD指令是这样描述的:
ACC ← [[CIR(15:0)]]
指令在 CIR 中,只需要检查 16 位地址即可确定指令的位置 内存中的数据。该位置的内容被转移到累加器中
例如,我认为如果它是我们要读取的前 16 位,它会是 (0:15),而如果它们是例如第 16 到 32 位,可以是 (16:31) 或 (16:16 (即从第 16 位开始并读取 16 位))
不过,我对 15:0 的顺序感到困惑。有谁知道这些数字具体指的是什么?
谢谢
【问题讨论】:
-
表示从第 15 位到第 0 位的 16 位。如果你写
0:15,那么第 0 位是最高有效位,几乎为零意义 -
谢谢...但是说明是从左到右阅读的,对吧?还是从右到左?
-
从价值上讲,你总是先在纸上写最高有效位,所以显然最左边的位是最高有效位
-
@phuclv 这取决于 CPU 架构:在 PowerPC CPU 上,大多数其他 CPU 上编号为
n的位传统上编号为63-n。即使在没有 64 位寄存器的设备上!这意味着8位Example寄存器的上半部分写成Example(56:59)。 -
@MartinRosenau 是的,当我在 Raymond Chen 的博客上关注 PowerPC 系列时,我知道那个奇怪的编号。很容易让人头晕目眩。几乎没有人这样做
标签: assembly cpu-registers microprocessors