абсолютное значение в MIPS

У Вас есть какие-либо простые способы сделать значение в регистре в MIPS как абсолютное значение?

9
задан aherlambang 22 February 2010 в 16:55
поделиться

2 ответа

Вот довольно простой способ сделать это.

#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
13
ответ дан 4 December 2019 в 06:14
поделиться

Самый простой способ - это просто немного посчитать двоичные значения.

http://en.wikipedia.org/wiki/Signed_number_representations описывает, как различные системы хранят свои отрицательные числа. Я полагаю, что MIPS использует схему двойного дополнения для хранения знаковых чисел. Это делает его немного сложнее, чем битовый флаг, который можно просто отключить, проигровав число с 0b0111111111, но это все равно выполнимо.

1
ответ дан 4 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: