Добавление двух 64-битных номеров в Assembly
Итак, я изучаю MIPS, используя симулятор SPIM, и я застрял в этой проблеме.
Я хочу добавить два 64-битных номера, которые хранятся в четырех 32-битных регистрах. Поэтому я добавляю байты LO, а затем байты переноса и HI. Но нет команды adc/addc, то есть добавить с переносом.
Поэтому мне пришлось бы добавить бит переноса в регистр состояния. Но как именно я читаю этот регистр?
Если $t0 является временным регистром 1, то что эквивалентно регистру статуса, который содержит флаг переноса?
У меня много googled, я до сих пор не могу найти примеров, которые даже используют регистр состояния.
Ответы
Ответ 1
Добавьте $t2 $t3 + $t4 $t5, получим $t0 $t1
addu $t1, $t3, $t5 # add least significant word
sltu $t0, $t1, $t5 # set carry-in bit
addu $t0, $t0, $t2 # add in first most significant word
addu $t0, $t0, $t4 # add in second most significant word
Для второй части вашего вопроса нет регистра статуса. Вовсе нет. Нада.