推 realmanKG: (a)跟(b)選項的差距就只有exception triggered後系統 11/10 14:46
→ realmanKG: 的應對是立刻回復或是暫且擱置,視架構不同對overflow 11/10 14:46
→ realmanKG: 的ISR應也有所不同,顯然不會是(a)中所述的「擺正位置 11/10 14:46
→ realmanKG: 」那麼簡單,更何況overflow應不是用”place properly 11/10 14:46
→ realmanKG: ”就能解決的例外情況;(c)的部分,我想應是saturatio 11/10 14:46
→ realmanKG: n operation,即是若是overflow則直接設為可表示範圍 11/10 14:46
→ realmanKG: 內之最大值,繼續讓程式執行 11/10 14:46
→ realmanKG: 一點個人想法,若有錯再請各位強者指正 11/10 14:46
推 b10007034: 樓上a的意思是啥?a的意思不就是執行完ith instr.然後 11/10 15:11
→ b10007034: 放回去而已嗎? 11/10 15:11
→ b10007034: 因為不確定ith instr.是否造成其他後果,所以通常都是 11/10 15:12
→ realmanKG: 喔喔喔喔靠腰我會錯意了抱歉XD,那(a)一定錯,overflo 11/10 15:13
→ realmanKG: w一定要跑exception handler 11/10 15:13
→ b10007034: 儲存當下的狀態(i-1之前的),然後回復到ith繼續執行 11/10 15:13
→ realmanKG: 感謝b大指正 11/10 15:13
→ b10007034: 交大老是喜歡用87的英文愚弄考生拉... 11/10 15:14
→ b10007034: 很明顯看得出來這不是原文書上那樣的文法跟語意 11/10 15:15
→ b10007034: 回原PO,張凡課本有提到exception的地方在processor那 11/10 15:17
→ gash55025502: 如果把overflow分成無號數跟有號數的overflow,無 11/10 17:09
→ gash55025502: 號數的可以忽略(c選項),但有號數的overflow就無法 11/10 17:09
→ gash55025502: 算出true result(a選項錯的地方),請問這樣的想法 11/10 17:09
→ gash55025502: 有錯嗎? 11/10 17:09
推 mistel: 不是 a錯的重點就在於他把正確結果放回去然後從i+1開始執 11/10 17:31
→ mistel: 行 但正確做法應該是把i i+1 i+2沖掉然後重新從第i個開始 11/10 17:31
→ mistel: 執行 11/10 17:31
→ mistel: (c)選項就像你說的 就是可能overflow會有有號數跟無號數 11/10 17:32
→ mistel: 所以是一個合理的推論 11/10 17:32
→ gash55025502: 原來如此 但想問一下如果是從第i個開始的話 不會又 11/10 17:57
→ gash55025502: 繼續overflow嗎?為何不是從第i+1個開始呢 11/10 17:57
推 mistel: 看是哪種例外視情況OS會把這個行程直接殺掉吧,但不管是 11/10 18:09
→ mistel: 哪種a選項應該都是錯的? 11/10 18:09
推 b10007034: 發生overflow是i-1 th instr.,處理完之後繼續從 11/10 18:10
→ b10007034: i th instr.開始執行 11/10 18:10
→ mistel: 應該沒有直接跳過3個指令從i+1執行的情況存在 因為要避免 11/10 18:10
→ mistel: 錯誤 11/10 18:10
→ b10007034: 講錯,如m大解釋 11/10 18:11