精華區beta CSSE 關於我們 聯絡資訊
大家好,最近在閱讀白算盤,有個地方讓我有點疑惑,但週遭找不到人可以討論,所以想 向版上先進們請教: 書上第二章提到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)
tinlans:看指令集架構對 PC 的算術運算是不是用一般指令吧。 06/02 17:04
tinlans:如果是一般指令,還要特別對 PC 做 check,看運算元是不是 06/02 17:04
tinlans:4 的倍數,這樣電路就要多做,會影響成本。 06/02 17:05
eva19452002:你剛都說了,PC每次都是+4,那來的PC+1啊 06/03 16:20
bob123:沒阿..所以白算盤都是+4 有別的書上的圖是+1(加在前30bit) 06/05 08:58