У Вас есть какие-либо простые способы сделать значение в регистре в MIPS как абсолютное значение?
Вот довольно простой способ сделать это.
#assume you want the absolute value of r1
ori $2, $zero, $1 #copy r1 into r2
slt $3, $1, $zero #is value < 0 ?
beq $3, $zero, foobar #if r1 is positive, skip next inst
sub $2, $zero, $1 #r2 = 0 - r1
foobar:
#r2 now contains the absolute value of r1
Самый простой способ - это просто немного посчитать двоичные значения.
http://en.wikipedia.org/wiki/Signed_number_representations описывает, как различные системы хранят свои отрицательные числа. Я полагаю, что MIPS использует схему двойного дополнения для хранения знаковых чисел. Это делает его немного сложнее, чем битовый флаг, который можно просто отключить, проигровав число с 0b0111111111, но это все равно выполнимо.