Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сегмент дисплея в текстовом режиме, Согласно Калашникову 
:(
    Опции темы
Snik
Дата 23.11.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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

PM MAIL   Вверх
dumb
Дата 23.11.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



"особенности" работы WinXP-шного dos-box'а. под досом будет работать. тут нечему не работать... smile
PM MAIL   Вверх
Snik
Дата 24.11.2006, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 16.8.2006

Репутация: нет
Всего: нет



Ну и как реально мне это запустить чтобы оно работало?
PM MAIL   Вверх
dumb
Дата 24.11.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



td.exe prog03.exe

PM MAIL   Вверх
Mysterio
Дата 25.11.2006, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Планирующий
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 28.12.2004

Репутация: нет
Всего: нет



Snik, можно выводить и другими, менее изощрёнными способами. Через 21h, например, или 10h, там можно с (x,y)
Тебе нужно непосредственно через память? Кстати, для пущей правды советую всё-таки пользоваться символами, начиная с 32-го.
Цитата(Snik @  23.11.2006,  16:36 Найти цитируемый пост)
загружаем в сегментный регистр ES число 0B800h <…> (запомните его!)

Тогда тебе надо обязательно запомнить число 0B000:0000h - начало экранной памяти для монохромных видеоадаптеров.  smile 

 А ещё можно запустить это под 9x, прекрасно работает.  smile 


Но сам по себе вопрос любопытен. Как найти адрес начала видеопамяти окошка в текстовом режиме под NT???

Это сообщение отредактировал(а) Mysterio - 25.11.2006, 23:11
PM MAIL   Вверх
digs
Дата 25.11.2006, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 14.10.2006

Репутация: нет
Всего: 1



В паскале под защищенный режим была константа, что то типа SegB800. Точно сейчас не помню. Можно попробовать написать прогу присвоения переменной этого значения, а потом в отладчике посмотреть, что именно делается.
PM MAIL   Вверх
Snik
Дата 27.11.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.