![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
Dark |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот, кому интересно, взял я тему Shadow - вывод точки напрямую в видеопамять и немного изменил:
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
Dark |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Хорошая вещь. :) только к процедуре дай комментарий по подробней. :( Хорошая вещь. только к процедуре дай комментарий по подробней. A000 - адрес видеобуфера, Я просто организую цикл на ассемблере, выводящий точки(записывающий байты) из буфера color(адрес помещен в ds:si) в видеобуфер. Cмещение первой выводимой точки вычисляется так: di=x+y*320.(без коментариев) cx содержит кол-во строк, dx - столбцов... вывод строки - rep movsb. movsb перемещает байт из ds:[si] в es:[di] Команда movsb сама прибавляет к di и si по 1. Затем 2 команды - add di,320 sub di,mx Корректируют текущий адрес, для получения адреса начала следующей строки рисунка Вопросы? ;D -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 1:12 |