Grad-ProbAsk 板


LINE

※ 引述《LinoYo (Lino)》之銘言: : 不好意思,請教一下大家有關於下面這張圖片 : https://imgur.com/a/ufbOMwC : 第一個問題是在問說錯的地方在哪裡,以及如何修正 : 請問一下須修正的地方是哪裡? : 是否為第6、7行的$v0、$v1來存,為了給call funtion f的caller用嗎 : 還有第2行及第9行的lw、sw似乎可以不必要? : 第二個問題問說此assembly code轉成C code寫出來且funtion f是什麼意思 : 有看沒有懂。 : 麻煩各位指點指點,謝謝! 手機排版請見諒。有點久沒唸計算機組織,有錯的話還請鞭小力一點 MIPS 不同字母開頭的暫存器有不同使用慣例,比如有一些暫存器的數值要 caller 自己保管,不然 callee 可能會把它用掉。有些則是 callee 有責任要維護好。我目前發現的問題有: 1. sp 不應該存在 ra:因為使用 jal 指令呼叫 f 時,會自動把呼叫完 f 之後的下個指令存在 ra ,你把它用 sp 蓋掉, jr ra 後就會把廢棄的 stack 裡面的東西當指令用(但那裡面存的是垃圾)。 2. 但 sp 也是 callee 要維護的暫存器。所以應該要把 sp 在記憶體裡,而不是 ra 中。在 epilogue 的時候從記憶體裡面回復到 sp。 2. 但 sp 也是 callee 要維護的暫存器。所以應該要把 sp 在記憶體裡,而不是 ra 中。在 epilogue 的時候從記憶體裡面回復到 sp。 3. callee 有責任維護 $s0 ~ $s7 暫存器,使 caller 看到的 $s 暫存器們的內容呼叫前後是一樣的,但 f 並沒有做到這件事(他直接去改 $s0 跟 $s1)所以還少了「 prologue 時把 $s 們的內容塞進記憶體, epilogue 時 第二個問題問「什麼樣的 C 程式會被組譯成上面那段組合語言」。但這個問題變數有點多,因為不太能斬釘截鐵地說編譯器一定會編出什麼東西來。但我會猜 function body 是這樣: f(...){return foo(foo(a,b), c+d);} 其中一個想法是裡面並沒有區域變數,如果隨便宣告一個整數暫存 c + d 的話,可能就會需要對 stack 做一些事。但顯然組譯結果裡面沒有任何對 stack 的動作。 但這還是有一個問題,C99 規格書中並沒有指定 function parameter 的計算順序,所以編譯出來的結果也可能會是先算 foo(a,b), 再算 c + d。所以也許有比這個更好的作法啦。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.252.222
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1537946195.A.757.html ※ 編輯: KWire (140.112.252.222), 09/26/2018 15:19:04
1F:推 LinoYo: 謝謝幫忙,先把$ra $s存放到記憶體在做callee的執行工作 09/26 18:46







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP