все правильно ты там выше сказал. число хранится в формате IEEE (знак порядок мантисса). просто это все делает сам асм. но ты всегда можешь написать этот как hex значение
Считать текстом до точки, и после точки. Передать аргумент: 1 число, 2 число, float/не float, и вот так складывать, а потом вывод - если float, то сначала вывести 1 число, потом точку, и 2 число
Просто я думал что если при делении в edx пишется остаток, то есть какая то схема типа пишем целое в eax перцишен пишем в edx и fpu это кушает как float, но похоже это мои фантазии были
Просто как Aiwan описал это все ложиться на препроцессор и он генерит в коде мантиссу и порядок а при пользовательском вводе это надо будет вручную мутить если не хитрить с флоатом как с целым
Вот нашел еще интересный вариант как сгенерить bcd float который fpu должен понять: 15.101 -> 15101 -- Remove the decimal point 15101 -> 0001 0101 0001 0000 0001 -- Converted to BCD Now we just add an extra 4 bits at the end to determine decimal place: 0001 0101 0001 0000 0001 -> 0001 0101 0001 0000 0001 0011 0011 is 3. That's because the decimal point goes 3 places to the left. т.е дополнительно создаем справа пакет 4 бита и там задаем нужное положение точки. Только непонятно как это форматировать в dworde по правой границе или по левой, и не очень то большое число вместится
Он хочет перевести их в удобный формат, чтобы провести с ними арифметические операции. Два регистра в виде 1-го числа до точки, и 2-го после точки - ему неудобно. Вот он и ищет другой способ