Цитата Сообщение от Sandro Посмотреть сообщение
Побитовые столбцы и есть побитовые столбцы.
Так именно проблема некратности байтам и решается. Символ выводится однобитовыми столбцами. То есть, маска бита на весь столбец фиксирована, м идём сверху вниз, сдвигая изображение стобца и по переносу определяя, закрашивать писель или нет. Т.е. символ хранится не горизонтально, а вертикально нарезанный. Выходит унифицированный код вместо зоопарка со сдвигом на 0/2/4/6 пикселя.
Получается, что по одному пикселю за шаг мы закрашиваем? Это может быть удобно/интересно для компактного хранения, но точно не для быстрого рисования. Как упражнение можно будет попробовать, даром что фонт в моем примере изначально как раз лежит на боку.

- - - Добавлено - - -

Цитата Сообщение от ivagor Посмотреть сообщение
Немного капитанства. В рамках выбранного подхода осталось разве что добавить оставшиеся промежуточные предсдвиги (увеличить память под предсдвинутый фонт вдвое). Дальше уже только за счет стека. Там полный предсвдиг, а для x_6 и x_7 даже по 2 байта на строку, чтобы убрать "лишние" логические операции. Если не запрещать прерывания, то придется добавить по 2 байта между символами. Вычисление адреса буквы опять замедлится, рисование ускорится. "Нет худа без добра, сказала лиса, зато ты сможешь разместить предсдвинутые фонты в квазе". Смысл стековый вариант имеет, если выводить символы группами, один раз сохраняем sp, выводим группу (без вызовов процедур, только переходы), восстанавливаем sp.
Предсдвиги здорово помогли для тех случаев, где было четыре и три сдвига. В текущем варианте третий предсдвиг дал очень мало. Для спорта тут все способы хороши, но для практики я думаю достаточно двух.

Со стеком я не очень понимаю как тут выгадаешь. Потому что ldax inr ldax inr -- это 32 такта, а pop mov mov -- это 28, 4*16 = 64 такта. Ухуху. Но на подготовку и восстановление затраты отнимут 60 тактов (если память не изменяет, может быть и хуже). 4 такта в лучшем случае, проще выпилить xchg там, где он остался от лени. Выгоду можно получить только если вынести подготовку-восстановление за скобку на все рисование строки, но тогда это совсем жесть и даже бенчмарк непонятно как тогда делать.