2017-07-26 70 views
-1

下面是彙編語言代碼,除了測試符號溢出:此彙編語言如何檢測簽名溢出?

addu $t0, $t1, $t2 
xor $t3, $t1, $t2 
slt $t3, $t3, $zero 
bne $t3, $zero, No_overflow 
xor $t3, $t0, $t1 
slt $t3, $t3, $zero 
bne $t3, $zero, Overflow 

什麼是人類語言的確切含義是什麼?

+0

'addu $ to'應該是'addu $ t0'嗎? 「人類語言」 - 你是什麼意思?你不明白'xor'的含義嗎?或'bne'? –

+0

人類語言的確切含義是一個深刻的哲學問題,可能不是你打算提出的問題。 –

+0

對不起,我沒有使用正確的描述 –

回答

2
  • 只有在添加相同符號的兩個數字(正數或負數)時纔會發生溢出。因此,operand1 XOR operand2的結果應清除符號位(因爲0 XOR 01 XOR 1都等於0)。這是第一部分檢查的內容。
  • 第二部分是檢查結果的符號是否與操作數的符號不同(這裏只使用操作數1,因爲我們知道第一部分之後兩個操作數具有相同的符號)。如果結果的符號與操作數的符號相同,則不會發生溢出。
+0

啊,所以這是有符號溢出(vs無符號溢出,進位位(vs乘法溢出))。 –