Поиск:

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


Шустрый
*


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

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



Помогите разобраться с теорией. Ассемблер копаю недавно, учусь по книге Питера Абеля «Ассемблер и программирование на IBM PC», пятое издание, книга выпущена в 2005 году. Беспокоит вот что: у Абеля есть большая глава, посвящена различным прерываниям – int 10h, 16h, 21h и так далее. Как я понимаю, если материал по прерываниям в новом издании книги остался, значит эта тема не устарела и все эти прерывания должны работать и под новыми операционными системами. Работаю под Win XP. При изучении ассемблера в качестве компилятора использую VC++ 6.0. Пользуюсь asm- вставками. Так вот, попытка задействовать (исследовать) даже самое простенькое прерывание – например, вывод на консоль char-строки или изменение положения курсора в консоли, приводит к тому, что приложение аварийно завершается. Никак не могу понять, что делать – то ли материал, приводимый в книге давно устарел, несмотря на то что издание новое, то ли я неправильно что-то делаю. Краем уха я слышал, что пользоваться прерываниями под nt-шными операционками нельзя, так как операционная система не дает напрямую обращаться к аппаратуре ПК. Однако, насколько я знаю, xp позволяет запускать dos- приложения, можно даже настроить совместимость с w95-98, а значит как минимум XP должна хотя бы эмулировать эти прерывания. И еще, в инете несколько раз встречал упоминания о том, что прерывания в новых версиях windows заменены понятием селекторы. И якобы прерываний как таковых нет вовсе. Если не сложно, поясните простым доступным языком, что это значит в плане программирования на ассемблере. Если предположить, что прерываний нет, значит  есть заменяющие (эмулирующие???) их селекторы, и я могу вызывать их вместо прерываний для тех-же целей. Например, для того-же вывода стоки на консоль… 
PM MAIL   Вверх
setty
Дата 13.6.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



хм, прерывания есть и никуда собстнаи не нделись, однако не 21h )
возможно xp и позволяет запускать dos приложения, однако запускает их в специальном там какомта эмуляционном режиме
твоюже прогу она будит запускать как обычное виндовое приложение и падобные инты её могут малость контузить )

что касается прерыванияй и селекторов, тут тебе стоит копать в сторону защищённого режима

при работе в виндоузе используются не прерывания а набрр функций предоставляемый windows разработчику - т.н. native APIs. С помощью этих апи можно писать/читать в консоль, работать с файлами, графическим интерфейсом, и впринципе делать очень и очень многое.
 
PM MAIL   Вверх
BUGOR
Дата 13.6.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



suvolod, есть прерывания windows, а есть прерывания ДОС, так вот если бы пытаешься в VC++ в win32 проекте писать на прерываних ДОС, то само собой ничего у тебя не выйдет, это же совершенно разные платформы, поэтому у тебя два выхода:
1. Использовать ДОС компилятор для своих проектов
2. Писать на ассемблере под вин.

Советую второе, книга Абеля давно морально устарела, после описывающего материала я там не вижу ничего актуального. Поэтому если уже знаком с основами, то переходи на win32 платформу. 


--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
ds29
Дата 15.6.2006, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вы что ребята, Питер Абель  "АССЕМБЛЕР язык и программирование для IBM PC"- это Библия программиста!
(у меня как первое (1991) так и 5-е (2003) издание)

итак, все прерывания будут корректно работать если ты их будешь компилировать тем компилятором, который указан в книге (т.е. MASM 6.1, например) и запускать под соотв. ОС (т.е. MS-DOS), для запуска в Win32 удобней запускать из консоли (cmd.exe) или из far-manager.
в этих случаях бкдет эмулирование MS-DOS .

если ты хочешь использовать Cи компилятор, то например используй Turbo C++ создавая в нём приложения под DOS с АСМ вставками.

т.е. используя эту книгу приложение под Win32 ты не напишешь. 
PM MAIL   Вверх
Exekutor
Дата 15.6.2006, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

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



Прерывания в 32-х битных приложениях под вин ХР не работают. Используй API. Если пишешь под доску, то используй соответствующий компилятор как уже говорилось выше.  


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
BUGOR
Дата 15.6.2006, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Exekutor, как не работают? Таблицу прервываний винды никто не отменял!  


--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
ds29
Дата 15.6.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



???

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

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

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


 




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


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

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