И Н С Т Р У М Е Н Т Ы К О Т О Р Ы Е М Ы В Ы Б И Р А Е М
Начну с того что в деле системного программирования я новичок, и потому мои рассуждения покажутся несколько дилетантскими. Заранее за это извиняюсь.
Поскольку все рассуждения идут о «защищенном режиме процессора» основе основ «осо-строения» то говорить о бесчисленных перезагрузках в связи с не менее многочисленными исключениями (exceptions) видимо излишне. Не ошибается лишь, тот кто ничего не делает. Один из первых инструментов которые я начал «юзать» в связи с занятием PM, был TurboDebuger не менее знаменитой фирмы Borland, конечно этот довольно удобный отладчик удается использовать до поры до времени, пока еще мы в «реальном режиме процессора». Тем ни менее весьма доступный и легко осваиваемый инструмент отладки, позволяющий отладить модуль видя перед собой его исходник, так как вы его написали, одно из преимуществ символьной отладки. Это бесценное преимущество символьной отладки максимально проявляется при использовании для компиляции языков высокого уровня, например C--.
По началу я довольно упорно, «юзал» даже для RM (Real Mode) DOS, в его первозданном виде, ну или почти первозданном. Но со временем понял что нет смысла особо убиваться имея под рукой Win 2000, в которой при зависании DOS сессии, последнею всегда можно срубить, не выжидая по минуте перезагрузки BIOS и DOS. TurboDebuger правда пришлось подновить до версии 5.0 из комплекта BCPP 5.0 или даже из Borland TASM 5.0, так как далее хотелось наблюдать все таки полные 32 разрядные регистры, а не их 16 битные обломки. На этом этапе я еще использовал именно ассемблер, сначала это был TASM, затем NASM, и окончательно FASM (MenuetOS не стоял на месте ;-)), если уж и втемяшелась в голову такая шальная мысль «писать именно в ассемблере», то по моему скромному мнению для 32 р-ого программирования в защищенном режиме подходит как нельзя лучше именно FASM, несмотря на, то что он достаточно сырой.
Вскоре я допер до PM и снова стал необходим чистый DOS, два дня абсолютно бесцельных перезагрузок могут вывести из себя даже ангела, не говоря обо мне. И снова пришлось искать что-нибудь, на этот раз этим что-нибудь стал bochs - эмулятор PC. Очень, очень полезный и абсолютно бесценный инструмент, можно сказать первый по счету после ваших мозговых оболочек. Запускаемый из NT или 2000, да что там Windows, практически из под любой платформы (например BeOS, слыхали о такой?), он предоставляет вам в пользование виртуальный PC, серьезно не чем ни отличающийся от настоящего, разве что в десятки раз медленнее работающий и напрямую не обращающийся к физическим ресурсам (приводам CD, HDD, FDD). Инструмент нужно сказать необходимый, но требующий дополнительных шевелений мозгой, как то например как создать имидж диска. Поскольку Bochs напрямую не обращается к устройствам хранения данных, он использует их виртуальные копии, имиджи, попросту файлы на диске имитирующие диски с их секторами и дорожками, а так же сторонами, все это гибко задается в файле настройки. «Чем создать имидж?». Вот вопрос который мучает новичка не линуксоида в первый момент знакомства с Bocsh, у линксоидов вопросов нет - есть утилита rawrite. На софтверных сайтах полно таких утилит и для Windows и DOS, стоит пошарить и на сайтах GNU софта, поскольку rawrite разродилась именно из GNU системы. Мне было несколько проще, так как я использовал C-предварительно выкачав практически все что было с сайта www.sheker.chat.ru. Просматривая в очередной выкаченные примеры я и наткнулся на вариант этой утилиты написанной Михаилом Шеккером fimage.com. Проблема с созданием имиджей гибкого диска была решена. Однако ожидание создание копии диска в файл, был все тягостнее. Пришлось вспомнить о существовании ramdrive, под NT не работавшим. Но кто ищет то всегда найдет и я нашел еще один инструмент под названием RAM DiskNT версия 1.5 превзошла все ожидания позволив организовать любые диски под NT и 2000 практически любого объема как гибкие так и жесткие. Теперь имидж создается в считанные секунды и дискеты при этом остаются в целости и сохранности, не выходя из строя после недельного интенсивного использования. Кроме того где-то в инете существует и бесплатная свободная версия данной утилиты RAM DiskNT 1.3, поищите если необходимо в http://www.google.ru
И напоследок еще о двух инструментах которые я очень рекомендую к использованию, это небезызвестная оболочка моего соотечественника и практически одноинститутчика, если так можно выразиться, FAR. К нему существует море плюгинов, например colorer обеспечивающий и без того мощному редактору FAR расцветку синтаксиса более чем сотни языков, при этом являющимся фреверным и гибко настраиваемым. Существует он в двух эпостасях как собственно плюгин и самостоятельная библиотека, для работы с подсветкой в FAR необходимы обои. Так же существует и масса калькуляторов и оболочка для использования компилятора без выхода из командной строки compiler, сообщающая об ошибках подобно интегрированной среде (установкой в модуль и строку ошибки).
Библиотеку colorer можно найти тут: http://www.uic.nnov.ru/~ruiv (www.chat.ru/~lomecb) http://www.uic.nnov.ru/~ruiv/plugring
(не забудьте зарегистрироваться ;-)) Плюгин Compiler: поищите сами.
И последнее если вы уж такой непримиримый адепт ассемблера попытайтесь пересмотреть свои позиции и хоть одним краешком глаза взгляните на Sphinx С--, как это сделал я. Честно скажу что не думал о существовании настолько гибкого инструмента позволяющего использовать регистры процессора и ресурсы вашего компьютера так же максимально как и ассемблер (я немножко лукавлю говоря это, но меня извиняет то что язык совершенствуется практически каждую неделю а автор доступен для нововведений и исправления ошибок).