作者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