Проект Оберс -> технологія | Linguage: Ukrainian English |
- Пам'ятай Рембо, ми не примушуємо тебе їхати в Афганістан; там тобі доведеться дуже скрутно; в тебе будуть стріляти; а якщо тебе схопить радянський ОМОН, ми будемо все заперечувати...Генерал Пентагона
Якщо ви вирішите повторити наведені нижче кроки по створенню програми пам'ятайте: я не відповідаю за наслідки ваших дій. Я не можу знати ні який в вас комп'ютер, ні яка операційна система. Більш того людська мова - не є алгорітмічною мовою я не знаю наперед чи правильно ви мене зрозумієте. Якщо ви надумаєте погратися boot-record жорсткого диска, знайте що це небезпечно для інформації, яка знаходиться на ньому. Наведені нижче дії треба виконувати на комп'ютері з процесором кращим за 80386 з сопроцесором 80387, пам'яттю 4Mb (можливо й менше, не перевіряв). Щоб запустити макроасемблер NASM вам потрібен інтерфейс DPMI і операційна система ДОС (у Віндовс 95 і краще все повинно працювать).
Наша мета - програма яка:
MODULE HELLO;
IMPORT vm86,PRIN;
VAR r:vm86.Регiстри;
BEGIN
PRIN.Очисти;
PRIN.Встанови_координати(34,12);
PRIN.Друк("Hello World!");
r.EAX:=0; r.int:=16H;
IF vm86.Виклик(r)=vm86.Наслiдок_норма THEN END;
vm86.перезавантаження
END HELLO.
Щоб не було проблем з кодуванням літер рекомендую скачати цей файл HELLO.O2
Як на мене, то не дуже просто, особливо коли досвід в ІТ ще не великий. Постає філософське питання: які будуть мої можливості при використанні цієї технології? Можливості ваші будуть унікальні. Ми створили програму, яка працює в режимі 32-розрядному захищеному режимі процессора i80386, і виконує переривання BIOS в режимі віртуального процесора 8086, розмір програми разом з завантажувачем менше 4K, а операційна система нам не знадобилася! Бажаєте написати BIOS? - трохи перепишіть макроси, і ваша програма може виконуватись прямо з ROM. Пишете програми для контроллерів з процесорами 8086 без сопроцесора? - модифікуйте файл macro.mac і додайте в нього емуляцію обчислень з плаваючою комою. Вас взагалі не цікавлять ці кволі PC? - переписуємо файл macro.mac для вашого макроасемблеру. Хочете створювати програми під різні операційні системи? - тіж самі дії. Мрієте створити свою операційну систему? Розробили свій процесор? Останні два питання - жарти :-). Враховуючи написане вище, я і писав на першій сторінці про нетрівіальні задачі.
Про завантаження з жорсткого диску, яке я згадував вище. Дії тіж самі крім пункту де ми модифікуємо перший сектор диска. Необхідно вказати діск C. Раджу спочатку програмою savesect.com (~315) створити його копію. Схочете повернутися до завантаження попередньої ОС - запишіть його на старе місце. Диск повинен бути з файловою системою FAT12 або FAT16 (loader підтримує тільки ці формати). Мітка диска повинна співпадати з ім'ям вашої програми.