Я пытаюсь написать код, который позволяет добавлять 2 числа, даже если они имеют длину 32 бита. Однако моя программа не будет работать, если я добавлю два 32-битных числа или если я добавлю два числа, которые составляют 32-битное число (например, 2bi + 2bi). В первом случае я получаю ошибку «Invalid Interger Input», а во втором случае я получаю ошибку «Arithmetic Overflow». Я полагал, что 32-й бит используется для сигнала «+» или «-». Как я могу это исправить?
li $v0, 4
la $a0, primeiro.num #asks for the first number
syscall
li $v0, 5
syscall
move $s0, $v0
li $v0, 4
la $a0, segundo.num #asks for the second number
syscall
li $v0, 5
syscall
move $s1, $v0
blt $s1, $zero, erro_num_neg
add $s2, $s0, $s1