внутрішня службова інформація. З іншого боку, програма типу. ЕХЕ постійно знаходиться на диску у файлі спеціального типу, який має індивідуальний заголовок, карту налаштування, контрольну суму і іншу інформацію, що використовується системою МS DOS.
Обидва типи програм з розширенням. СОМ і. ЕХЕ переносяться в пам'ять для виконання за допомогою одного і того ж механізму, а саме функції Ехес, яка утворює завантажувач системи МS DOS. Функція Ехес може викликатися з ім'ям файлу програми, що завантажується СОММАND.СОМ (звичайним інтерпретатором командного рядка системи МS DOS) або іншою оболонкою, призначеним для користувача інтерфейсом або іншою програмою, яка була завантажена раніше за допомогою Ехес. Якщо в області транзитних програм досить вільної пам'яті, то Ехес виділяє блок пам'яті під нову програму, будує префікс сегмента програми (РSР) за його базовому адресою, а потім зчитує програму в пам'ять безпосередньо над РSР. Наприкінці своєї роботи Ехес встановлює регістри сегмента і стека і передає управління програмі.
Після активізації програми Ехес може видавати адреси додаткової інформації, такої, як хвіст команди, блоки управління файлами, контекстний блок. При необхідності цю інформацію можна передавати іншій програмі [8. c. 35]. p> Програми з розширенням. СОМ і. ЕХЕ часто називають транзитними програмами. Транзитна програма на час свого виконання "Володіє" блоком виділеної їй пам'яті і має майже повний контроль над системними ресурсами. При завершенні роботи такої програми з будь причини - зняття операційною системою, успішне виконання і вихід в МS-DOS - виділений їй блок пам'яті звільняється (звідси термін "транзитний") і може бути використаний наступній завантажується програмою.
2.2 Префікс програмного сегмента
МS DOS відводить префіксу сегмента програми область в 256 байт в початку блоку пам'яті, що виділяється транзитної програмі. Префікс має кілька зв'язків з МS DOS, які можуть використовуватися транзитної програмою; крім того, певну інформацію записує в нього МS DOS як для своїх цілей, так і для передачі транзитної програмі, яка у разі потреби може інформацію використовувати.
У префіксі за відносною адресою 0000Н знаходиться команда передачі управління системного оброблювачу завершення процесу, який видаляє програму після її виконання та здійснює остаточний вихід. За відносною адресою 0005Н знаходиться команда зв'язку з диспетчером функцій МS DOS, який здійснює дискові операції, операції введення-виведення через консоль та інше сервісне обслуговування за запитом транзитної програми [7, c. 13]. p> У слові префікса з відносною адресою 0002Н знаходиться сегментна адреса верхньої межі блоку пам'яті, виділеного транзитної програмі. Програма може за допомогою цього значення визначити, чи слід запросити більше пам'яті для своєї роботи і чи є зайва пам'ять, яку можна звільнити для потреб інших процесів.
Область префікса з адреси 000АН по адресу 0015Н призначена для попереднього вмісту векторів переривань обробників завершення Сtг1-С і критичної помилки. Якщо транзитна програма змінить ці вектори для своїх цілей, то після її завершення система DOS відновить вихідні значення векторів, збережені в префіксі. Слово префікса з відносною адресою 002СН зберігає сегментна адреса блоку оточення, в якому знаходиться декілька АSCIIZ-рядків (послідовності символів в коді АSCII, що закінчуються нульовим байтом). Блок оточення успадковується від програми, яка викликала функцію Ехес для завантаження виконується в даний момент програми. У блоці знаходиться така інформація, як поточний шлях, використовуваний програмами файлу СОММАND.СОМ для пошуку здійсненних програм, розташування на диску самого файлу СОММАND.СОМ, формат запиту користувача, який видається СОММАND.СОМ. Хвіст команди - це залишок командного рядка (після імені програми), що запустила транзитну програму; хвіст команди копіюється в префікс, починаючи з відносного адреси 0081Н. Довжина хвоста команди, без урахування символу повернення в кінці рядка, поміщається в байт з відносною адресою 0080Н. Параметри перенаправлення або конвейєризації та пов'язані з ними імена файлів не зустрічаються в тій частині командної рядка (хвості команди), яка передається транзитної програмі, так як операція перепризначення прозора для прикладних програм [1, c. 75]. p> Область префікса довжиною 128 байт від 0080Н до 00FFН, встановлювана системою МS DOS до передачі управління транзитної програмі, служить також стандартної дискової областю пересилання (disk transfer area, DTA). Якщо програма явним чином не змінює DТА, то всі операції читання або запису файлу, витребувані викликами групи функцій типу FСВ (file control bloc - блок управління файлами), автоматично використовують цю область в якості буфера даних.
2.3 Програми типу. COM
Програми типу. СОМ зберігаються на диску у вигляді файлів, в яких міститься абсолютн...