Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод прямо в видеобуффер, не идёт из - за Винды? 
:(
    Опции темы
CD20
Дата 18.8.2005, 04:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Компилю на TASM'е под винду:
Код
cseg    segment
org    100h
main:
    mov    ax, 0B800h
    mov    es, ax
    mov    ah, 31
    mov    al, 1
    mov    di, 0
    mov    es:[di], ax
    mov    ah, 10h
    int    16h
    int    20h

    cseg ends
end main

Как мне пояснили - выводу в видеобуффре препятствует винда. Вопрос: как это обойти? Простыми способами, а не выыгразкой винды, как это делается, например, в softICE'е?
PM MAIL   Вверх
monax
Дата 18.8.2005, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



CD20, я очень сомневаюсь, что под виндой можно сделать int 16 или int 20. Все вызовы происходят в режиме эмуляции DOS (DOS-сессия).
Ну а чтоб этот код заработал напиши сразу после main
Код

mov ah,0h
mov al,3
int 10h

И неплохо было бы использовать assume.
--------------------
Лаборатория программиста
PM MAIL WWW ICQ Jabber   Вверх
CD20
Дата 18.8.2005, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это через BIOS.
Мне нужно на прямую в память.
Винда позволяет вызвать прерывания...

Это сообщение отредактировал(а) CD20 - 18.8.2005, 13:04
PM MAIL   Вверх
oleg1973
Дата 18.8.2005, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



0хВ800 адрес текстового буфера , скажем так "видеопамять для вывода текста"
и туда в режиме эмуляции все прекрасно пишется
Код

push 0xb800
push 0
pop si
pop es
mov ax,0x тут че мы там хотим вывести
mov [es:si],ax

в принципе должно работать



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
monax
Дата 18.8.2005, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Это через BIOS.
Мне нужно на прямую в память.

Вывод там напрямую в видеопамять, а этот код нужен, чтоб установить 3-й видеорежим. Просто в разных режимах адрес видеобуфера может различаться (поэтому твой код и не хочет ничего выводить).
--------------------
Лаборатория программиста
PM MAIL WWW ICQ Jabber   Вверх
CD20
Дата 19.8.2005, 04:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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