作者icetofux ()
看板CSSE
标题[问题] 最近在看白算盘有个小疑问
时间Wed Jun 2 10:30:26 2010
大家好,最近在阅读白算盘,有个地方让我有点疑惑,但周遭找不到人可以讨论,所以想
向版上先进们请教:
书上第二章提到MIPS架构上,一个指令机械码长度为 1(word) = 4(byte) = 32(bit)。
但是第三章提到条件跳跃指令以外,每执行一个指令PC会加4。
PC反映出程式记忆体的位址,如果指令机械码在程式记忆体中是连续的,那麽每个指令
的间隔应该是如第二章所述1(word)/4(byte)/32(bit)。所以我想PC每加1应该是跳过1
byte,然而这样做有什麽好处呢?既然一条指令机械码有4byte,PC的增减应该都要以
4byte为单位才对,那麽PC设计成一次可以增加1byte似乎没有太大的意义?
先谢谢大家了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.67.181.135
※ 编辑: icetofux 来自: 203.67.181.135 (06/02 10:34)
1F:→ tinlans:看指令集架构对 PC 的算术运算是不是用一般指令吧。 06/02 17:04
2F:→ tinlans:如果是一般指令,还要特别对 PC 做 check,看运算元是不是 06/02 17:04
3F:→ tinlans:4 的倍数,这样电路就要多做,会影响成本。 06/02 17:05
4F:→ eva19452002:你刚都说了,PC每次都是+4,那来的PC+1啊 06/03 16:20
5F:→ bob123:没阿..所以白算盘都是+4 有别的书上的图是+1(加在前30bit) 06/05 08:58