ForposT_ForeveR Ну что я могу сказать. Все не так плохо как могло бы быть
Т.к. числа будут всякие, то можно сразу все делать через сопроцессор. А можно не делать
Итак, что нам нужно:
Счиать из файла все выражения
Составить последовательность их решения. Ведь некоторые выраджения используют переменные которые вычисляются в другом выражении. Значит надо первым выполнить то выражение, все переменные которого уже известны.
Составить список всех переменных. Сформировать из них сегмент данных нашего исходника.
Тут еще можно подумать над типом данных. Думаю достаточно будет двойного слова для не дробных. Пусть все они будут целые со знаком, для всех будем использовать операции над числами со знаком, это немного уменьшит число макросов. Для дробных можно взять 10 байт, стандартный размер регистра сопроцессора. Неизвестные переменные заполнить нулями.
Формируем алгоритм решения первого выражения.
Для удобства написания макросов лучше соблюсти правило. Первое число всегда загружаем в eax, а второе в ebx. После присвоения значений регистрам идет вычисление значения и запись результата в переменную (если результат это значение новой переменной).
По окончании вычисления одного выражения вставляем макрос вывода на экран и выводим результат.
Потом формируем алгоритв расчета второго выражения и так далее.
Как то так я это вижу.
Если я все вижу правильно, то можно начать пилить макросы.