當我嘗試在MIPS無符號整數工作,每個操作我做的結果仍然簽署了(也就是整數都在2的補數),儘管我每次執行操作是一個無符號之一:addu
,multu
等第四...爲什麼MIPS在無符號數字上的操作會給符號結果?
當我在[2^31, 2^32 - 1]
範圍內打印數字時,我得到了它們的「溢出」負值,就好像它們被簽名一樣(我猜他們是)。
雖然,當我嘗試這樣的事:
li $v0, 1
li $a0, 2147483648 # or any bigger number
syscall
印刷數量總是2147483647 (2^31 - 1)
我很困惑...我缺少什麼? PS:我沒有包括我的代碼,因爲它不是非常可讀的(這是彙編代碼),拋開這個問題, 似乎工作正常。如果有人覺得有必要,我會馬上加入!
我一直在尋找所有過網的答案...任何地方,但明顯。謝謝! – dankilman 2009-12-29 21:12:26
那麼爲什麼他們使用的術語「符號和無符號」,而不是像「檢查,並取消選中」? – dan04 2011-02-02 02:48:39
這是一個用詞不當。閱讀第一個報價。 – 2011-09-19 15:23:20