Я просто пытаюсь реализовать многоточную арифметику на родном MIPS. Предположим, что одно 64-битное целое число находится в регистре $ 12 и $ 13, а другое - в регистрах $ 14 и $ 15. Сумма должна быть помещена в регистры $ 10 и $ 11. Наиболее значимое слово 64-битного целого найдено в регистрах с четным номером, а наименьшее значащее слово встречается в регистры с нечетным номером. В Интернете, по его словам, это кратчайшая возможная реализация.Многоточечная арифметика на MIPS
addu $11, $13, $15 # add least significant word
sltu $10, $11, $15 # set carry-in bit
addu $10, $10, $12 # add in first most significant word
addu $10, $10, $14 # add in second most significant word
Я просто хочу проверить, что я правильно понял. Sltu проверяет, сумма двух наименее значимых слов меньше или равна одному из операндов. Если это так, как это произошло, это право?
Чтобы проверить, если произошел перенос, при добавлении двух наиболее значительных слов и сохранить результат в $ 9, я должен сделать:
sltu $9, $10, $12 # set carry-in bit
Есть ли в этом смысл?