Добавление двух 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

Для второй части вашего вопроса нет регистра статуса. Вовсе нет. Нада.