Поиск:

Ответ в темуСоздание новой темы Создание опроса
> прерывания bios 
:(
    Опции темы
alexkolzov
Дата 2.12.2010, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Только начал изучать gas. Подскажите, можно ли (и как) использовать прерывания bios? А то привычный набор типа
mov $0, %ah
int $0x16
компилируется без ошибок, но вызывает ошибку сегментации. В чем причина?
PM MAIL   Вверх
500mhz
  Дата 2.12.2010, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



а кто сказал что в linux прерывания соответствуют мсдосовским?


--------------------

PM MAIL ICQ   Вверх
alexkolzov
Дата 3.12.2010, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



никто не говорил. но насколько я помню, 16h - прерывание bios а не dos. Если не прав - поправьте пожалуйста. Вопрос такой: как вызвать в программе под Linux прерывания bios, например, для опроса клавиатурного буффера
PM MAIL   Вверх
500mhz
Дата 3.12.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



ой ,вы правы, извеняйте запямятовал.  

но не суть важно, никто вам не даст напрямую работать с клавой в линюхе
попробуй из под root все это делать, полюбому это как бы не коректно будет.

так по быстрому, getchar на асме )))

Код

mov eax, 3 ;sys_read
mov ebx, 0 ;stdin
mov ecx, адрес буфера
mov edx, 1 ;сколько байт прочитать
int 0x80 ;собственно syscall



--------------------

PM MAIL ICQ   Вверх
alexkolzov
Дата 3.12.2010, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



по быстрому - это круто, но там восьмидесятое линуксовое прерывание, оно читает из stdin, а stdin может быть и не клавой вовсе. А если нужен именно ввод с клавиатуры в обход stdin?
что никто просто так ниче не даст - эт тоже понятно, и скорее всего даже root не поможет (если память мне не изменяет, там заморочка в режиме работы процессора, в защищенном обращаться к bios нельзя). Вот приспичило мне вызвать bios. Неужели нельзя? Может кто-нибудь сталкивался с подобным?
PM MAIL   Вверх
500mhz
Дата 4.12.2010, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



alexkolzov
в таком случае не "ехешник" нада делать а LKM,он работает в пространстве кернела как драйвер


--------------------

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

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

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


 




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


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

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