Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2010, 08:24   #1
shturman
 
Аватар для shturman
 
Регистрация: 20.10.2008
Сообщений: 5
По умолчанию ошибка возвращаемойая прерыванием int 10h

Всем здрасть!
Помогите разобраться с проблемой
до безумия простой код:
Код:
.model tiny
.code
org 100h
begin:
        mov ax,4f00h        ;инфо о видеокарте
	mov di,offset buf   ;выгружаем начиная с метки buf
	int 10h

        mov ah,10h           ;ждём нажатия клавиши
        int 16h
        ret
        buf:
end begin
после компила смотрю "buf" под отладчиком...
попробовал данную программу на нескольких видеокартах работает прекрасно, на видеокарте NVIDIA GeForce 9500 GT программа после запуска тутже закрывается тоесть не доходя до кода ожидания нажатия клавиши. В чём может быть проблема ?
попробовал установить несколько графических видеорежимов, те режимы что не поддерживаются программка закрывается сразу, те режимы что поддерживает данная видеокарта после установки ворачивает в AX 014F тоесть ошибка установки режима, текстовые режимы все работают нормально. Что за "вата" с видеокартой понять немогу ? может она не поддерживает стандарт VESA ?
shturman вне форума Ответить с цитированием
Старый 28.06.2010, 13:49   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

что возвращается в буфере с информацией?
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 28.06.2010, 18:00   #3
shturman
 
Аватар для shturman
 
Регистрация: 20.10.2008
Сообщений: 5
По умолчанию

после запуска вышеуказанной программки, сразу закрывается, смотрю под отладчиком грузит в буфер "Version 62.94.3C.00.00...Copyright(C)1996-2008.NVIDIA.Corp... (дальше полная каша)"

на других видео-карточках (на которых программа отработала прекрасно) первые 4 байта в буфере "VESA"....
shturman вне форума Ответить с цитированием
Старый 29.06.2010, 03:55   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

shturman
А запускался твой "до безумия простой код", естественно, под WinXP, или Vista? В курсе, что Win не поддерживает прерывания, прямой доступ к аппаратуре и памяти, а делает это через драйвера? Или создай системную дискетку и запускай свой "до безумия простой код" под чистым DOS
Mikl___ вне форума Ответить с цитированием
Старый 29.06.2010, 06:38   #5
shturman
 
Аватар для shturman
 
Регистрация: 20.10.2008
Сообщений: 5
По умолчанию

Mikl___ Программка не обращается к АПИ функциям виндовс, под отладчиком я смотрю пошаговое выполнение своей программы, после вызова прерывания 10h я попадаю в сегмент биоса где и выполняются соответствующие действия согласно "настроенных" мной регистров. ни каких дополнительных файлов или библиотек не задействуется....
shturman вне форума Ответить с цитированием
Старый 29.06.2010, 07:42   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Цитата:
Сообщение от shturman
Программка не обращается к АПИ функциям виндовс, под отладчиком я смотрю пошаговое выполнение своей программы, после вызова прерывания 10h я попадаю в сегмент биоса где и выполняются соответствующие действия согласно "настроенных" мной регистров. ни каких дополнительных файлов или библиотек не задействуется....
Намекаю, идет эмуляция выполнения int 10h и судя по реакции видеокарты
Цитата:
видеокарте NVIDIA GeForce 9500 GT программа после запуска тутже закрывается тоесть не доходя до кода ожидания нажатия клавиши
эмуляция не совсем правильная (точнее совсем НЕ правильная) чем пререкаться -- создай загрузочную дискету и посмотри как твоя программа и видео будут вести себя под ДОСом
Mikl___ вне форума Ответить с цитированием
Старый 29.06.2010, 10:28   #7
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

если под досом не пойдет попробовать обновить bios видеокарты
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 01.07.2010, 14:04   #8
shturman
 
Аватар для shturman
 
Регистрация: 20.10.2008
Сообщений: 5
По умолчанию

Спасибо Mikl___ !!! Создал загрузочную флешку с dos-ом, загрузился и запустил программу, и как ни странно программка отработала корректно...
shturman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при обработке функции класса "missing type specifier - int assumed" askerpro Общие вопросы C/C++ 8 02.06.2010 23:09
int **x Di3el Общие вопросы C/C++ 11 16.12.2009 19:22
INT 10H Вывод строки ADA Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.05.2009 09:44
mov ax,13h int 10h и Borland Pascal виснет..? Siddharta Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 01.07.2008 11:27
Вывод через Int 10h braun Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 11.11.2007 17:46