Реализация инструкций MIPS для функции абсолютного значения

В этом семестре я действительно изо всех сил в классе EE, и мой преподаватель изучает инструкции MIPS, как будто мы в совершенстве владеем им! Я пробовал книги, Google, YouTube, репетиторство и общение со студентами, но это либо не имеет смысла, либо они недостаточно уверены в себе, чтобы помочь.

Я действительно мало уверен в том, как начать код. Я настроил это, но не знаю, что делать. Я предоставлю вопрос и обновлю то, что имею, когда получу помощь.

Вопрос:

"Используя только целочисленные инструкции MIPS, напишите функцию, которая сделает x = abs(y), где x и y - числа с плавающей запятой. Ваша функция должна правильно обрабатывать только обычные значения с плавающей запятой, а не NaN и т. Д."

Попытка в работах:

(пока не достигли прогресса:()

####
#
# Float absolute value
#
# x = abs(y)
# 

.text
.globl myabs

myabs:

    li $t0,y    #register t0 = y
#   more code..
#

    jr  $ra     # return

Если кто-то может предоставить хороший справочный материал, советы, предложения, советы, подсказки или что-то еще, я был бы очень признателен! Благодарю.

1 ответ

Итак, ieee754.
Читайте об этом.
Думаю об этом.
Поймите, это знаковая величина.
На MIPS случается так, что бит знака находится в той же позиции в слове, что и старший значащий бит в целом числе.

load float as integer x
AND x with 0x7fffffff
store x as float
Другие вопросы по тегам