看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《wsx02 ()》之銘言: : 1. http://ppt.cc/txxl 張凡的書在48頁 : 請問第3題是甚麼意思? 1跟2我會 只是第3題看不懂 : 2. http://ppt.cc/Ri2X 張凡的書在49頁 : 1跟2我會 : 請問第3題 為什麼是 : a. jump跟beq都是no : b. jump跟beq都是yes : 謝謝 1. (a) .在只有8個暫存器之下(在這邊應該是指General Purpose Register) 勢必造成各個指令長度變短(除了Jump以外), 則會降低code的size;這是假設在這樣長度的指令還能處理此程式情況下; 若不是;則造成指令數變多;因為常用的數值又會更多的被存在記憶體中, 是register spill的情況;我想會有更多的存取記憶體的指令產生。 (b) .當可以表示立即值的常數欄位又變更短的情況下; 我想條件跳躍指令所可達到的範圍又更狹隘,在此情況下,可能導致原本程式 一個跳躍所到得了的地方,可能需要更多個條件跳躍指令; (我看了解答後,發現解答是講lui,這個我只有模糊的想法) 所以這邊麻煩解答一下 2. (3a).這邊可以秒殺.因為0*0000 1000跟0*2000 0000 根本在不同block 不同block,jump也跳不到,所以branch更不可能。 (3b).這個要算,我會先算beq,beq可以jump就可以。 先把兩個16進制的數字抓過來先剪 0*20001400 - 0*20000000 ------------- 1400 1400=0001 0100 0000 0000 為2^12所以在Branch的範圍內 DONE -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.165.193.110 ※ 編輯: Numbstu 來自: 115.165.193.110 (07/12 22:22) ※ 編輯: Numbstu 來自: 115.165.193.110 (07/12 22:24)