![]() |
|
|
![]()
|
|
| Snik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 16.8.2006 Репутация: нет Всего: нет |
Согласно Калашникову(загружаем в сегментный регистр ES число 0B800h, которое соответствует сегменту дисплея в текстовом режиме (запомните его!). ) такой текст должен выводить рожицу. До этого все его примеры работали.
Почему этот пример ничего не выводит? (компилим в ".сом") CSEG segment org 100h _beg: mov ax,0B800h mov es,ax mov di,0 mov ah,31 mov al,1 mov es:[di],ax mov ah,10h int 16h int 20h CSEG ends end _beg |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
"особенности" работы WinXP-шного dos-box'а. под досом будет работать. тут нечему не работать...
|
|||
|
||||
| Snik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 16.8.2006 Репутация: нет Всего: нет |
Ну и как реально мне это запустить чтобы оно работало?
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
td.exe prog03.exe
|
|||
|
||||
| Mysterio |
|
|||
![]() Планирующий ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.12.2004 Репутация: нет Всего: нет |
Snik, можно выводить и другими, менее изощрёнными способами. Через 21h, например, или 10h, там можно с (x,y)
Тебе нужно непосредственно через память? Кстати, для пущей правды советую всё-таки пользоваться символами, начиная с 32-го.
Тогда тебе надо обязательно запомнить число 0B000:0000h - начало экранной памяти для монохромных видеоадаптеров. А ещё можно запустить это под 9x, прекрасно работает. Но сам по себе вопрос любопытен. Как найти адрес начала видеопамяти окошка в текстовом режиме под NT??? Это сообщение отредактировал(а) Mysterio - 25.11.2006, 23:11 |
|||
|
||||
| digs |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 14.10.2006 Репутация: нет Всего: 1 |
В паскале под защищенный режим была константа, что то типа SegB800. Точно сейчас не помню. Можно попробовать написать прогу присвоения переменной этого значения, а потом в отладчике посмотреть, что именно делается.
|
|||
|
||||
| Snik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 16.8.2006 Репутация: нет Всего: нет |
Спасибо за размышления вслух ! Вот решение
CSEG segment org 100h _beg: mov ax, 3 ; ah =0 - номер функции, al=3 - режим int 10h mov ax,0B800h mov ds,ax mov di,0 mov ah,31 mov al,1 mov ds:[di],ax mov ah,10h int 16h int 20h CSEG ends end _beg |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |