Реализовать 2 функции с использованием языка C и конструкции asm компилятора gcc - C (СИ)
Формулировка задачи:
формат binary16 стандарта IEEE 754-2008. В прототипах функций, приведённых ниже, обозначается как fp16_t
/* * Возвращает экспоненту числа */ int fp16_exp(fp16_t f);
/* * Возвращает мантиссу числа без скрытого бита */ int fp16_mant(fp16_t f);
Решение задачи: «Реализовать 2 функции с использованием языка C и конструкции asm компилятора gcc»
textual
Листинг программы
int fp16_exp(fp16_t f)
{
int ret = 0;
__asm(
"and $0x7C00, %1;"
"shr $0xA, %1;"
"or %1, %%ax"
: "+a" (ret)
: "r" (f));
return ret;
}
int fp16_mant(fp16_t f)
{
int ret = 0;
__asm(
"and $0x03FF, %1;"
"or %1, %%ax"
: "+a" (ret)
: "r" (f));
return ret;
}