DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Завантаження та виконання програм DOS. Організація програм *.ЕХЕ та *.СОМ

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
О
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2023
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Операційні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем Звіт до лабораторної роботи №4 з дисципліни «Операційні системи» Тема « Завантаження та виконання програм DOS. Організація програм *.ЕХЕ та *.СОМ » Варіант 3 КИЇВ-2022 Мета роботи: ознайомитися зі структурою виконуваних програм *.ЕХЕ та *.СОМ та їх образом в пам’яті.Теоретична частина: Операційна система MS DOS передбачає два типи виконуваних програм, які мають розширення *.СОМ та *.ЕХЕ . Перед завантаженням в оперативну пам’ять СОМ- та ЕХЕ-програм DOS визначає спеціальну область оперативної пам’яті розміром 256 (100h) байт - сегментну адресу, яка називається префіксом програмного сегменту (PSP – Program Segment Prefics). PSP може використовуватися в програмі для визначення імен файлів та параметрів з командного рядка, які вводяться при запуску програми на виконання, обсягу допустимої пам'яті, змінних оточення системи та ін. При завантаженні програми в оперативну пам’ять DOS ініціалізує як мінімум три сегментних регістри: CS, DS, SS (додатковим може бути ES). Код та дані переміщуються з файлу на диску в оперативну пам’ять, а адреси цих сегментів заносяться у CS та DS відповідно. Сегмент стека або виділяється в області, що вказана в програмі, або співпадає (якщо він явно не описаний в програмі) з самим першим сегментом програми. Адреса сегменту стека розташовується в регістрі SS. Програма може мати декілька кодових сегментів та сегментів даних і в процесі виконання за допомогою спеціальних команд здійснюється переключення між ними. Для того, щоб адресувати одночасно два сегменти даних, наприклад, для виконання операції пересилання з однієї області пам’яті в іншу, можна використовувати регістр додаткового сегмента ES. Кодовий сегмент та сегмент стеку завжди визначається вмістом своїх регістрів (CS та SS), в кожний момент виконання програми завжди використовується якийсь один кодовий сегмент та один сегмент стека. Основні відмінності цих програм полягають у наступному: програми типу *.СОМ (двійковий образ коду та даних програми) складаються тільки з одного сегменту, в якому розміщується і код програми, і дані, і стек; файл СОМ-формату не містить переміщуваних адрес; СОМ-файл завантажується, починається з адреси PSP:0100h; CS, DS, ES, SS вказують на PSP; SP вказує на кінець сегмента PSP (зазвичай 0FFFEh); ІР містить 100h в результаті команди JMP PSP:100h; розмір програми типу *.СОМ не може перевищувати 64 Кбайт; використовується модель пам’яті TINY; образ СОМ-файла зчитується з диску та розташовується в пам’яті, починаючи PSP:0100h; програма генерує стек автоматично, тому в самій асемблерній програмі стек має бути відсутнім; усі дані повинні бути визначені у сегменті коду; в програмах типу *.ЕХЕ міститься спеціальний заголовок, за допомогою якого завантажувач виконує налаштування посилань на сегменти у завантаженому модулі використовуються окремі сегменти і для коду, і для даних, і для стеку; розмір програми типу *.ЕХЕ не має жорстких обмежень, тому що програми може мати будь-яку кількість сегментів команд та даних; ЕХЕ-файл завантажується, починається з адреси PSP:0100h; DS та ES вказують на початок PSP; CS, IP, SS, SP ініціалізуються значеннями, зазначеними в заголовку ЕХЕ; використовується модель пам’яті SMALL, яка передбачає розташування структурних частин програми у двох сегментах: сегменту кода програми (64 Кбайт) та сегменту даних і стека , що належать одній групі Dgroup (64 Кбайт). Завершення програми можна виконати декількома способами: через функцію 4СН (EXIT) переривання 21Н в будь-який момент, незалежно від значень регістрів; через функцію 00Н переривання 21Н або переривання INT 20H, у випадку коли CS вказує PSP. Програми типу *.ЕХЕ та *.СОМ розрізняються форматом вхідного тексту, процедурою підготовки виконуваного файлу, а також форматами завантажувальних файлів. Для створення ЕХЕ-програми необхідно виконати наступні команди: TASM /LA /ZI ім’я файлу.asm TLINK /X /V ім’я файлу.obj ім’я файлу.exe При створенні програми *.СОМ необхідно виконання двох умов: вхідний текст програми повинен мати відповідний формат з використанням мінімальної моделі пам’яті; необхідно після компоновки отримати виконуваний файл з розширенням *.СОМ. При використанні пакета ТАSM при виклику компоновщика необхідно вказати ключ /Т: TASM /Z /N ім’я файлу.asm Ключ /z дозволяє виведення на екран рядків вихідного тексту програми, в яких асемблер виявив помилки (без цього ключа пошук помилок довелося б проводити з лістингу трансляції). /n пригнічує виведення в лістинг таблицю ідентифікаторів (переліку символічних позначень в програмі), за рахунок чого трохи зменшується інформативність лістингу, але скорочується його розмір. TLINK /X /T ім’я файлу.obj Ключ /х означає не створити файл карти map.файл. Ключ /t означає створити виконуваний com.файл. ім’я файлу.com При використанні програм типу *.сом при виклику асемблера ключ /ZI не використовується, аналогічно при виклику компоновщика ключ /V також не використовується. Ці ключі є неприйнятними для програм типу *.сом. 1) Створення ЕХЕ-програми: / Рисунок 1.1 – код програми exe. / Рисунок 1.2 - запуск програми lab4.exe / Рисунок 1.3 – TurboDebuger після виконання програми.exe(F9) / Рисунок 1.4 – повідомлення в консолі 2) Створення COM-програми: / Рисунок 2.1 – текст програми – COM / Рисунок 2.2 – запуск програми lab4c.com / Рисунок 2.3 - TurboDebuger після виконання програми.com (F9) / Рисунок 2.4 – вивід повідомлення в консолі Висновки: Під час виконання даної лабораторної роботи ми ознайомились зі структурою виконуваних програм *.ЕХЕ та *.СОМ і ознайомились з образом цих програм в пам’яті. Закріпили навички парцювання з TB.
Антиботан аватар за замовчуванням

06.05.2023 11:27

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!