|
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
|
||||||
MASM Прямой вывод символа в видеопамять (по книге Калашникова)13.02.2011, 19:49. Показов 4329. Ответов 10
Метки нет (Все метки)
разбираю пример из Калашникова
И еще. Наверно каждый регистр за что-то отвечает? Ну, например, один за цвет текста, другой еще за что-то. Где про это можно прочитать? Потому что Калашников конкретно не говорил (ну, только в кратце и без особой конкретики)
0
|
||||||
| 13.02.2011, 19:49 | |
|
Ответы с готовыми решениями:
10
Вывод на экран прямой записью в видеопамять Вывод последовательности символов прямой записью в видеопамять Вывод строки средствами BIOS и с помощью прямой записи в видеопамять |
|
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
|
||||||||||||
| 13.02.2011, 20:31 | ||||||||||||
http://frolov-lib.ru/books/bsp/v21/index.html
1
|
||||||||||||
|
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
|
||||||
| 13.02.2011, 20:57 [ТС] | ||||||
|
что-то никак не могу понять как работает вывод. Вот в с++ для любого вывода был cout<<
в C# это Console.Writeline(), в TurboPascal это был Writeln, а здесь что???? в программе hello world по-другому вывод осуществлялся...
0
|
||||||
|
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
|
|
| 13.02.2011, 21:19 | |
|
В случае Hello,world строка выводится с помощью DOS-функции 9h (вывод строки). А у Калашникова пример вывода напрямую в видеопамять (минуя DOS). В es кладется адрес начала видеопамяти, в квадратных скобках смещение относительно него, при нулевом смещении символ появится в верхнем левом углу экрана. Вывод происходит мгновенно, это самый быстрый способ вывода.
1
|
|
|
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
|
|
| 13.02.2011, 21:24 [ТС] | |
|
murderer, а что эта строка в твоем коде значит
mov word ptr es:[0],1F40h и почему без нее ничего не выводится?
0
|
|
|
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
|
|
| 13.02.2011, 21:44 | |
|
Dimarik__, цвет (31) занеси в ah, а не в ax, тогда и у тебя получится. А murderer сделал проще, поместил код символа и его атрибут сразу в видеопамять, не задействуя ax.
0
|
|
|
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
|
|
| 13.02.2011, 22:15 [ТС] | |
|
Каждый регистр за что-то отвечает? Ну, например, один за цвет текста, другой еще за что-то. Где про это можно прочитать? Потому что Калашников конкретно не говорил (ну, только в кратце и без особой конкретики)
Добавлено через 2 минуты И еще. Если не трудно, дайте пару советов как лучше всего учить ассемблер. В смысле как правильнее всего. Например, в с++/C# если я читал книжку и у меня что-то не получалось, я вводил название функции в MSDN и там все рассказывалось. Как бы немного чего-то очень важного не понимаю=(((
0
|
|
|
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
|
||
| 14.02.2011, 00:18 | ||
|
В данном случае регистр неважен, главное понять, под символ отводится 2 байта, старший отвечает за цвет самого символа и фона (старшие 4 бита за фон, младшие за символ), младший содержит его ASCII-код. Поэтому нужно в расчитанное заранее место экрана переслать эти самые 2 байта, можно использовать регистр или просто записать двухбайтовое число, например если написать mov es:[158],2E42h, в конец первой строки выведется желтая B на зеленом фоне(2Eh это 00101110b, коды зеленого и желтого цветов, 42h - ASCII-код B).
Добавлено через 31 минуту
1
|
||
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
||
| 14.02.2011, 08:40 | ||
|
1
|
||
|
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
|
||
| 14.02.2011, 08:43 [ТС] | ||
|
0
|
||
|
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
|
|
| 14.02.2011, 15:47 | |
|
Dimarik__
Начинай с асм-вставок в C или Pascal. Учиться писать сразу на асме тяжело.
0
|
|
| 14.02.2011, 15:47 | |
|
Помогаю со студенческими работами здесь
11
Резидентный обработчик прерывания 21h (по книге Калашникова) Обработчик прерывания int 21h (по книге Калашникова) Создание динамических эффектов путем прямой записи в видеопамять Создание динамических эффектов путем прямой записи в видеопамять Написать программу вывода строки на экран: прямой записью в видеопамять / функциями BIOS Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|