Когда я умножаю число с плавающей запятой с помощью multu, должен ли я игнорировать результат в регистре LO?

В нашем проекте мы берем два числа с плавающей точкой от пользователя, сохраняем их в целочисленных регистрах и обрабатываем их как числа с плавающей запятой одинарной точности IEEE 754, манипулируя битами путем маскирования. Итак, после умножения 23-битного значения дроби следует ли учитывать результат, помещенный в регистр LO, если я хочу вернуть число с плавающей запятой одинарной точности (32 бита) в качестве произведения?


person Community    schedule 01.09.2009    source источник


Ответы (1)


Во-первых, я надеюсь, что вы имеете в виду 24 бита значения, так как вам нужно будет включить неявный бит мантиссы в ваше умножение.

Во-вторых, если вы хотите, чтобы ваше умножение было правильно округлено, как в IEEE-754, вам (иногда) потребуется младшая часть умножения, чтобы получить правильный округленный результат.

С другой стороны, если вам не нужно реализовывать правильное округление и вы сдвигаете биты дроби влево перед умножением, вы сможете игнорировать младшее слово результата.

person Stephen Canon    schedule 04.09.2009