Низкоуровневое программирование для Дzenствующих
Вид материала | Документы |
- Низкоуровневое программирование, 108.99kb.
- Курс является базовым как для изучения других математических дисциплин, так и для более, 36.89kb.
- 1 Обобщенное программирование. Обобщенное программирование это еще одна парадигма программирования,, 55.18kb.
- Введение в линейное программирование линейное программирование (ЛП), 139.72kb.
- Учебно-методический комплекс для студентов заочного обучения специальности Прикладная, 63.23kb.
- Аттестационное тестирование в сфере профессионального образования, 72.49kb.
- Лекции по дисциплине «Социальное моделирование и программирование», 44.69kb.
- Программа дисциплины Линейное программирование Семестр, 17.93kb.
- Программа дисциплины "Программирование" для направления, 488.76kb.
- Рабочая программа по дисциплине Программирование на языке высокого уровня для специальности, 182.97kb.
Низкоуровневое программирование для Дzenствующих
#Бредисловие
Последняя ночь перед...
Как таинственная и трагична последняя ночь перед страшным экзаменом. Там не дадут достать или поднять маленький обрывок бумаги, на кончике котором зашифрована, напечатана или отксеренна судьба грешной души студента. Спасения нет, шары НЕ БУДЕТ!!! Но остаётся только одна единственная ночь, чтобы изменить мир...
Сквозь тусклый свет призраки спускаются к бедной голове, что, склонившись над таинственной тетрадью, словно заклинание, повторяет непонятные слова из 21-ой буквы, в которых заключено имя страшного предмета.
Часовая стрелка незаметно скользит вперёд. Вот-вот и она уже на 12.00. Текст расползается перед глазами, духи говорят с тобою. Мистика. В чёрной чашке с надписью NestCafe бурлит чёрная жидкость. Кошмарные видение ненаступившего «завтра» висят в воздухе комнаты. Всё соединяется в ужасный единый крик: «Завтра не наступит»… а потом слышится звон… тяжёлый звон из реальности, звон будильника…. Наступило последнее утро.
Мистика, неправад ли? WASM.RU спешит поздравить всех Дzenствующих студентов с окончанием кошмаров по имени "сессия". А всем поступающим желает познать её таинство.
И вот теперь, когда наступило лето, (а у кого-то может быть идёт практика, или сборы на военной кафедре), когда душа поёт и ликует, самое время занятся безумством. Тем более, если это замечательно безумство программирование на ASSEMBLERе.
Как утверждает сам Serrgio[HI-TECH], программирование на ассемблере не только делает ум гибким и лёгким, а так же повышает кислотно-щелочной баланс, выводит шлаки, позволяет закодировать от курения, выпивания и других забавных занятий, а кроме того, улучшает внутренний и внешний товаробмен веществ. А самое главное увеличивает мужскую силу и женское обаяние (я ничего не забыл? Если да присылайте свои объявления по адресу dzenreclama@kanal.ort).
И вот, чтобы хорошо расслабится, я предлагаю, заняться ещё более безумным делом чем программирование на ассемблере. Вы наверное удивитесь: "А что такое возможно?". О, да!!! Такое возможно. Читайте далее.
Рустам Галиев
Нестандартный загрузчик
(часть 1)
- Начальная загрузка
- Загрузочный код
Данная статья предназначена для тех, кто хочет подробнее узнать о процессе начальной загрузки компьютера и поэкспериментировать с ним. Материал излагается с использованием языка ассемблера, однако каждый шаг подробно комментируется и разобраться в нем при желании смогут и читатели, не имеющие специальной подготовки (хотя знакомство с ассемблером и архитектурой процессора Intel 0х86 облегчит восприятие). Не потребуется также никакого специального программного обеспечения: все описываемые действия проделываются с использованием отладчика debug, входящего в состав Windows 95/98. Проделав описанные в статье действия на своем компьютере, вы сможете создать вспомогательную программу wb.com и установить в реестре ее ассоциацию с расширением файлов .bot, что позволит одним щелчком мыши переносить созданные с помощью debug файлы на дискету, сделав ее загружаемой.
Начальная загрузка
После проверки программой BIOS подключенного оборудования управление передается процедуре начальной загрузки с дисков, доступ к которой можно получить через прерывание INT 19h. Данная процедура загружает всего один сектор (первый) с нулевой дорожки нулевой головки, размещая его в памяти по адресу 7С00h, и передавая управление после загрузки сектора по этому же адресу. В области данных BIOS хранится последовательность обращения к дискам, пока не будет произведена успешная загрузка (это значение устанавливается через BIOS Setup). Ответственность за дальнейшую загрузку компьютера ложится на код, содержащийся в загрузочном секторе соответствующего диска.
Совершенно очевидно, что из-за ограниченного объема сектора (512 байт) загрузочный код разнообразием не блещет и в основном сводится к операции загрузки с диска в оперативную память дополнительных секторов, содержащих ядро операционной системы, и передаче управления по соответствующему адресу памяти. Кроме кода загрузки, в загрузочном секторе содержится также приведенный ниже в таблице блок параметров BIOS с данными о форматировании диска.
Смещение | Размер, байт | Содержание |
3h | 8 | Аббревиатура и номер версии ОС |
Bh | 2 | Число байтов в секторе (512) |
Dh | 1 | Число секторов в кластере |
Eh | 2 | Число резервных секторов в резервной области раздела |
10h | 1 | Число копий FAT в разделе (2) |
11h | 2 | Количество 32-байтных дескрипторов файлов в корневом каталоге |
13h | 2 | Общее число секторов в разделе |
15h | 1 | Тип носителя информации (для современных дискет F0h) |
16h | 2 | Количество секторов, занимаемых одной копией FAT |
18h | 2 | Число секторов на дорожке |
1Ah | 2 | Число головок |
1Ch | 4 | Число скрытых секторов перед началом раздела (для дискет 0) |
20h | 4 | 0 (используется FAT32) |
24h | 1 | Номер дисковода (для дискет - от 0 до 3) |
25h | 1 | 0 (для Windows NT) |
26h | 1 | Признак расширенной загрузочной записи (29h) |
27h | 4 | Номер логического диска (создается при форматировании) |
2Bh | 11 | Метка диска (текстовая строка) |
36h | 8 | Аббревиатура типа файловой системы |
3Eh | | Начало загрузочного кода |
Первые три байта загрузочного сектора содержат инструкцию безусловного перехода ( JMP) на код, начинающийся после блока параметров BIOS. Кроме того, последними двумя байтами являются 55h и AAh (сигнатура – признак загрузочного сектора логического диска). Желающие могут посмотреть на эти данные, воспользовавшись программой diskedit.exe из пакета Norton Utilities, и прочитать с ее помощью физический сектор №1 любой форматированной дискеты. Данные блока параметров BIOS должны присутствовать всегда, поскольку Загрузчик BIOS проверяет его целостность.