推 A4P8T6X9: unsigned 的,跳到另外一邊不合理。 07/14 23:06
推 k2shouai: 他上課是改yes沒錯,張凡上課是說可以把記憶體想成是一 07/15 10:54
→ k2shouai: 個圓(頭尾相連)。 jump指令才有256mb的區塊限制。 07/15 10:54
晚回,抱歉了
附圖:http://imgur.com/zlgtOlO
以一般ELF來說,從code sec跳到另外一端會到stack或是不合法的存取位址吧?
如果您有上課,可否幫我問問老師呢 (小弟沒上面授TAT)
※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 14:48:27
推 k2shouai: 我上tkb的。題目是問說能不能跳到而已,沒問你合不合法 07/19 18:54
→ k2shouai: 吧? 07/19 18:54
如果不合法,CPU根本不會給你跳吧?
硬體好像會有base register & limit register去做protection?
(雖然不知道MIPS有沒有就是了,不過應該有對應的機制)
http://stackoverflow.com/questions/8178001/mips-memory-execution-prevention
"The CPU then on every instruction checks whether or not the memory accesses
comply with the OS-established permissions and if everything's OK, carries
on. If there's an attempt to violate those permissions the CPU raises an
exception (a form of an interrupt similar to those from external to the CPU
I/O devices) that the OS handles."
※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 19:45:23
推 k2shouai: 跳了合法-> 沒事,不合法->當機。 不是嗎= =? 07/19 20:17
應該說,吃到不合法位址,便直接跳到exception handler了
CPU 他不會餵給PC讓你跳到那邊讓你死機吧 0.0
※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 20:59:27
推 k2shouai: 你是覺得一定會不合法? 他題目只是問有沒有可能而已 07/19 22:11
這是我有疑慮的點,因為答案原本給的是 False
我在想張凡跟交大老師是否有不同見解 @@? 我想找101交大解答,連結也失效
我覺得是不合法,畢竟stack就從頂端長下來,下面還有未分配之記憶體, heap,...etc
還是單純題目只是想考考二進位加減法?
※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 23:10:36
推 k2shouai: 畢竟stack就從頂端長下來->這邊想表達的是? 07/19 23:10
→ k2shouai: 他已經跳到另一個程式區塊了, 無法預期會跳到該程式的 07/19 23:11
→ kyuudonut: 那邊已經不是code sec,CPU會擋下來 07/19 23:11
→ k2shouai: 哪一段吧. 這題目出的本來就怪怪的 PC也不太可能在0吧 07/19 23:12
→ k2shouai: 你怎能預期那邊不是code sec, 就不同程式了 07/19 23:12
可是 CPU 也會有 base & limit register去記錄此 process 的範圍呀
如果是不同程式,也會直接 exception?
※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 23:16:49
→ kyuudonut: 然後感謝糾正XD 有可能是別的code sec 07/19 23:19
推 k2shouai: base & limit register->MIPS哪來這二個? 07/19 23:27
我知道沒有mips這兩個@@
但我一直再想應該會有類似機制去防止存取其他process
但剛剛查了一下都找不到相關文件 orz
如果單純照課本畫的mips,要嘛就繼續執行其他程式,
不然就是instruction無法解碼跳exception,
但兩者的前提都是先跳到branch指定的address (!)
謝謝跟你的討論,但我的出發點只是怕兩個地方給答案不一樣 TAT
※ 編輯: kyuudonut (220.132.251.85), 07/20/2016 00:00:33
推 ken52011219: 後期很常遇到這種張凡和考試答案給的不一樣的題目 07/21 14:37
→ ken52011219: 這時侯 分數就在一念之間 07/21 14:38
→ ken52011219: 告訴你該怎麼做 你就想著張凡的講解 然後再想 三個字 07/21 14:39
→ ken52011219: 暫時的 07/21 14:39
→ ken52011219: 然後寫上 學校給的正確答案 (拍拍 07/21 14:40
推 ken52011219: 至於這題,翻開第71頁 BEQ為程式計數器相對定址法 從 07/21 14:51
→ ken52011219: 這裡其實就可以知道 它是signed了 不用想太多 instru 07/21 14:51
→ ken52011219: ction 裡的常數加上pc的位址 第二題是yes沒有太大的 07/21 14:51
→ ken52011219: 異議 07/21 14:51
推 ken52011219: 後面學過pipeline就可以更清楚瞭解beq在整個管線流程 07/21 15:03
→ ken52011219: 中 它的常數會在IF時經過加法器 +上pc再傳回去 07/21 15:03
→ ken52011219: struction decode) 07/21 15:16
推 tomdog12345: 所以考試時這種有不同講解答案的題目 還是要以學校為 07/23 12:13
→ tomdog12345: 主嗎 @@但是我是覺得張凡的答案也有一套道理的說 07/23 12:13
→ ken52011219: 見仁見智 只不過你確定題目一模一樣 算出來又跟你 07/23 12:57
→ ken52011219: 印象中一樣有爭議 然後又剛好是同間學校考出來的 07/23 12:58
→ ken52011219: 這時 千萬 不要跟這間教授出題過不去 XDD 07/23 12:59
→ ken52011219: 只不過張凡 這類有爭議題目有講到也會這樣跟學生說 07/23 13:00
推 ken52011219: 只不過阿... 往年學校爭議送分題 尤其是資工的不少 07/23 13:02
→ ken52011219: 相信自己 相信自己的答案就好 07/23 13:03
推 tomdog12345: 好的 反正就是相信自己 剩下的聽天由命XD 感謝 07/24 10:04