![]() |
|
|
![]()
|
|
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Почему программа не выводит рожицы?
|
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Затрудняюсь сказать без DOSBox и отладчика.
Попробуй выводить рожицы прерываниями VideoBIOS int 10h fn=02h - установить позицию курсора int 10h fn=09h - записать символ и атрибут в текущей позиции курсора (при записи с помощью этой функции курсор не сдвигается!) О параметрах вызова int 10h - по первой попавшейся ссылке из поисковика, а лучше у Ральфа Брауна. PS Я уже забыл, но, кажется, при изменении сегментного регистра нужно добавлять директиву assume es:nothing Или что-то вроде этого. PPS Может быть и выводит, сделай задержку (ввод клавиши - int 16h) |
|||
|
||||
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Тут если 0 поставить, но норм, выводятся Только я не пойму почему? Это сообщение отредактировал(а) GQU - 6.1.2015, 20:41 |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
А-а-а-а-а-а-а
Точно! Потому, что адрес у страницы 1 уже не b800:0000. Он будет на размер буфера больше. В твоём случае в di надо будет поместить не 0, а 25*80*2*страница. |
|||
|
||||
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
почему только 2 рожицы выводит? Это сообщение отредактировал(а) GQU - 6.1.2015, 21:04 |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Предполагаю, что имеет место выравнивание адреса страницы:
80*25*2=4000 -> 4096 Т.е. имеется память 16КиБ. Она разделена на 4 страницы в видеорежиме 3. На каждую страницу приходится 4КиБ. Границы начинаются с 4096*страница. Сейчас нет доступа к компу с эмулятором DOS - поэтому все мои ответы предположительны. |
|||
|
||||
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
в di поставил 4096 нормально отработала *) |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Да, я поторопился с первым ответом.
А здесь хорошо расписано распределение страниц в 3 режиме. PS Когда я активно работал в DOS (у меня на рабочем компе был пропатченный для кириллицы FreeDOS - и ничего другого), то активно пользовался справочником TechHelp (были варианты и на русском и на английском). Поищи его в сети - может и пригодится... Это сообщение отредактировал(а) ФедосеевПавел - 6.1.2015, 21:55 |
|||
|
||||
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
google всем справочникам справочник, вообще у меня где то был припрятан на черный день |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |