Не прошло и года...
В общем, недавно вспомнил, что обещался printf на асме забацать. Спешу порадовать, что printf`у быть!
Собственно, автомат написан, но сегодня не выложу, ибо код ещё очень грязен, и не весь формат, какой хотел, реализован.
Это не сама printf, а служебная функция для её реализации. Её параметры: адрес п/п печати символа, адрес управляющей строки, адрес начала списка аргументов.
Думаю нужно обсудить, до какой степени упростить функцию.
Что поддержано на сегодня:
- Печать строк (%s), символов (%c), чисел десятичных (%d,%i,%u), шестнадцатиричных (%x,%X) и восьмеричных (%o).
- Размеры чисел от байта до лонга, т.е. спецификаторы "l" и "hh"
- Печать незначащих нулей в старших разрядах - флаг "0"
- Печать "+" перед положительным числом - флаг "+"
На остальные спецификаторы стоят заглушки.
Решил отказаться от обработки полей и выравнивания.
Пока длина кода составляет 844 байта.
Какие будут соображения?





Ответить с цитированием