169 похожих чатов

День добрый! push 0A000h

;видеосегмент
pop es
push 0F000h;графический шрифт для символов 0-7Fh хранится по адресу F000:FA6Eh
pop gs
xor di,di ;левый верхний угол
mov bx,offset Hello ;адрес текстовой строки
next: movzx si,byte ptr [bx];получаем очередной символ из строки Hello
lea esi,[esi*8+0FA6Eh];умножаем индекс символа на 8 + адрес символа в шрифте
mov cx,8 ;8 байт на одну букву
@@: movs byte ptr es:[di],gs:[si]; вывод на экран
add di,WIDTH_SCREEN/8 - 1; сдвигаемся на следующую строку
loop @b
sub di,WIDTH_SCREEN - 1
inc bx
cmp byte ptr [bx],0 ;это последний символ?
jnz next
Копаюсь с выводом текстовой информации, используя битовые карты шрифтов.
Нашёл рабочий код, реализующий это, но не могу понять, почему строка
movs byte ptr es:[di],gs:[si]

помимо копирования байта информации ещё и сдвигает регистры si и di на единицу. Или регистры-индексы устроены таким образом? Заранее большое спасибо!

4 ответов

18 просмотров

Можешь этот бинарник скинуть?

fnop- Автор вопроса
Saenro
Можешь этот бинарник скинуть?

А? это с честью было подсмотрено тут https://studassistent.ru/assembler/bitovye-karty-shriftov-assembler

fnop
А? это с честью было подсмотрено тут https://stud...

У меня МАСМа нет, интересно что там в бинарнике. (com-файле)

Необычная интерпретация: bx, text movzx si, b[bx] lea esi, [esi×8+0fa6e]

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта