[問題] 最近在看白算盤有個小疑問

看板CSSE作者時間14年前 (2010/06/02 10:30), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
大家好,最近在閱讀白算盤,有個地方讓我有點疑惑,但週遭找不到人可以討論,所以想 向版上先進們請教: 書上第二章提到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)

06/02 17:04, , 1F
看指令集架構對 PC 的算術運算是不是用一般指令吧。
06/02 17:04, 1F

06/02 17:04, , 2F
如果是一般指令,還要特別對 PC 做 check,看運算元是不是
06/02 17:04, 2F

06/02 17:05, , 3F
4 的倍數,這樣電路就要多做,會影響成本。
06/02 17:05, 3F

06/03 16:20, , 4F
你剛都說了,PC每次都是+4,那來的PC+1啊
06/03 16:20, 4F

06/05 08:58, , 5F
沒阿..所以白算盤都是+4 有別的書上的圖是+1(加在前30bit)
06/05 08:58, 5F
文章代碼(AID): #1C1S94La (CSSE)
文章代碼(AID): #1C1S94La (CSSE)