SoUrcerer wrote:
В трех битах нельзя вернуть данные. В трех битах можно определить новую подфункцию, но это будет нелогично. В общем, нафиг всё, даешь библиотеку.
Допустим вариант:
при ebx = 1 , в eax возвращать ширину строкиЭто ни как не сломает все работающие программы, так как ebx = [координата по оси x]*65536 + [координата по оси y], что при любом раскладе > 1, собственно добавить в 4 функцию
Quote:
cmp ebx,1
...
je....
...
mov eax,...
то что тут затрётся eax, как понимаете, ничего страшного! Так как условие ebx=1 ранее не существовало, и во всех остальных программах, не использовавших это - eax затираться не будет!
PS: стандарты нарушать не хорошо (согласен с Маратом), как и плодить костыли, но ведь подобное расширение функции допустимо! Это ни чем не хуже этого:
Quote:
A=0 - выводить esi символов, A=1 - выводить ASCIIZ-строку
esi = для A=0 длина строки, должна быть не больше 255; для A=1 игнорируется
просто еще одно условие, при чём не ресурсоёмкое и много мусора не внесёт (ничего лишнего в ядре не должно быть!) Вообще да, нужна библиотека ответственная за работу со шрифтами и вывод текста во всех извращённых формах, с функциями возвращения размеров каждого символа какого нужно, вывода подчёркнутого наклонного зачёркнутого текста, с функцией вывода текста с установленным шагом и прочче, в общем библиотека!).
PPS: у линукса хороший слоган есть. Есть программа, она должна выполнять только свои функции, ничего левого, но должна это делать по максимуму.