| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > int 21h - учить или не учить |
| Автор: suvolod 13.3.2007, 13:44 |
| Пожалуйста, проясните мне такой момент про int 21h Ассемблер учу недавно, и недавно начал понимать, что int 21h – это чисто досовское прерывание. Вопрос, стоит ли тогда его учить вообще – со его множеством функций. Или оно полностью устарело. Меня смущает то, что в эпоху win32-платформ до сих пор выпускается куча книг по этой теме – взять того же Питера Абеля (сейчас читаю пятое издание его книги), да и любая другая книга почти всегда не один десяток страниц отдает под описание int21h-фций. Смущает и то, есть куча фций этого прерывания, которые до сих пор нормально работают даже в WinXPSp2. Что это? – полная поддержка этого прерывания или все-таки эмуляция, оставленная для совместимости, которая со временем исчезнет окончательно. Я учусь на программиста, до этого копался в Си, WinApi, сейчас пришлось из-за учебы перейти на изучение Паскаля и Делфи. Но для себя я уже давно выбрал языки, в которых хотел бы работать: это С/С++ и ассемблер, только в них я могу абсолютно все – не просто создавать пользовательские форточки, но и писать драйвера, операционки, исследовать защиту программ и многое другое. И вот почитал я учебники Пирогова, Юрова, Голубь, сижу я сейчас над книгой господина Абеля, дотошно (в который раз) вчитываюсь во все многообразие фций int 21h, int 10h и подобных, что-то выписываю; проверяю, что работает под виндой, а что нет, исправляю в коде Абеля многочисленные косяки и опечатки - а про себя думаю – нафига мне все это надо. Не писать/не ломать досовские программы я все-равно уже наверняка никогда не буду, основные операторы mov, rep, loods и прочие я уже изучил, как создавать из них стандартные конструкции типа циклов и условий знаю – так может действительно плюнуть и сесть за изучение ассемблера для Windows? Но почему же тогда в каждой НОВОЙ книге по ассемблеру их авторы пол книги уделяют прерываниям, если они вроде как уже никому не нужны? – или все-таки я «сам дурак» - не понимаю того, что очевидно другим?. Пожалуйста, разрулите ситуацию: стоит ли изучать int21h и подобные. Какие все-таки стоит? Например, int13 для работы с биосом – это что, тоже устаревшая технология, или это прерывание будет работать и поддерживаться всегда? Меня это интересует с точки зрения написания в будущем (пускай и отдаленном), собственной ОС. Вообще интересно ваше мнение по методике обучения – книжек-то у меня куча, а вот понимания того, как эффективно и быстро въехать в изучаемую тему, нет. |
| Автор: sgi1981 14.3.2007, 13:19 |
| Какова цель у тебя ? Windows вообще обширная ОС. По моему она экспортирует десятки тысяч функций приложениям в своих DLL из каталога System32. Зайди в этот каталог и посмотри сколько там библиотек, и каждая содержит от нескольких до неск сотен функций, и я думаю если не все, то большинство этих библиотек можно импортировать. Чего там только нет... Помимо основных библиотек kernel32 user32 gdi32... и для интернета функции, и COM-DCOM, мультимедиа... |
| Автор: Gaudi 20.3.2007, 19:44 |
| masm32. Уроки Iczelion'а (маст рид). На дос забей. |
| Автор: Akina 20.3.2007, 21:39 |
| Учить - в любом случае глупость. Надо просто представлять себе, какие функции есть у прерывания 21h (да и остальных), а когда понадобится реализовать что-то конкретное - справку в зубы и вперед. Я на АСМе начал писАть в 1988 году - и до сих пор не помню 2/3 функций, что, впрочем, мне совсем не мешает. Вот типичный пример. Int 13h - вовсе не прерывание "для работы с БИОСом". Да таких вообще в природе нет - это прерывание для работы с дисковыми накопителями. Его базовая часть действительно находится в БИОС, но бОльшая часть подгружается ОС как расширение... Учите систему команд (от базовых 8086 до MMX/SSE), работу с аппаратной частью (программирование портов и контроллеров), интерфейсы функций ОС, работу в разных моделях, структуру модулей, типичные коды и их оптимизацию... словом, документация и примеры. ИМХО. |
| Автор: tishaishii 2.4.2007, 12:43 |
| Ты, что ли под Фауста косишь? Сидишь и читаешь всякую писанину Петра Макаровича, который из запоя не выходил уже лет 30ть? Надо - используй, не надо - не используй и конец спору. Ты думаешь, что написанная тобой программа будет в неизменном состоянии использоваться более 10 лет? Вряд ли. |