Имеем число X, где X принадлежит множеству натуральных чисел. Нужно вывести это число на экран.
Я знаю только как вывести либо символ, либо строку на экран. Если 9>X>1, то все просто, прибавляем 48('0' в ASCII) и выводим как символ. А если скажем X=123? Единственная мысль которая мне приходит, очень плохая мысль, это перевести это число в строку. Перевод я вижу примерно так:
Код: Выделить всё
Узнаем кол-во цифр==COL, делим число на 10 (COL-1) раз. Таким образом мы узнаем первую цифру. К ней прибавляем 48 и добавляем в строку и так до победного.В этом алгоритме меня не устраивает его громоздскойсть. Операция деления происходит за несколько тактов. А если число будет (2^64-1), то это будет ну очень много тактов, а это еще без учета вывода на экран каждого символа.
Есть ли более простые способы вывода на экран? Я сейчас для проверки решения поставленных задач, вызываю printf из libc, но я хотел бы сделать это посредством вызова системных вызовов.
P.S. Использую YASM, инструкции можно использовать с i*86 и amd64.
P.S.S. Соотвественно пишу под GNU/Linux, но можно и под другие *nix, можно будет попытаться разобраться.
P.S.S.S. Я не студент.