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

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

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

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

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

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

Міністерство освіти і науки України Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра АПЕПС ЗВІТ з лабораторної роботи № 2 з дисципліни «Операційні системи» Тема «Завантаження та виконання програм DOS. Організація програм *.ЕХЕ та *.СОМ» Варіант № 17 Мета роботи: Ознайомитися зі структурою виконуваних програм *.ЕХЕ та *.СОМ та їх образом в пам’яті. Завдання: Ознайомитися зі структурою програми *.ЕХЕ та образом такої програми у пам’яті. Ознайомитися зі структурою програми *.СОМ та образом такої програми у пам’яті. Засвоїти особливості створення виконуваних програм *.ЕХЕ та *.СОМ. Підготувати .ЕХЕ  та .СОМ програми для виведення на екран повідомлення HELLO WORD! з варіантом опису даних: msg db "Hello Word!", 0Dh, 0Ah, '$' 0Dh – символ повернення каретки (Carriage Return), 0Ah - символ переведення рядка Продемонструвати роботу .ЕХЕ – та .СОМ-програм, пояснити розподіл пам’яті для цих програм. У DEBUG за допомогою команди D CS:0000 ви маєте можливість переглянути машинний код програми для ехе-програми. У DEBUG за допомогою команди ви маєте можливість переглянути дані. Теоретичні відомості: Операційна система MS DOS передбачає два типи виконуваних програм, які мають розширення *.СОМ та *.ЕХЕ . Перед завантаженням в оперативну пам’ять СОМ- та ЕХЕ-програм DOS визначає спеціальну область оперативної пам’яті розміром 256 (100h) байт - сегментну адресу, яка називається префіксом програмного сегменту (PSP – Program Segment Prefics). PSP може використовуватися в програмі для визначення імен файлів та параметрів з командного рядка, які вводяться при запуску програми на виконання , обсягу допустимої пам'яті, змінних оточення системи та ін. При завантаженні програми в оперативну пам’ять DOS ініціалізує як мінімум три сегментних регістри: CS, DS, SS (додатковим може бути ES). Код та дані переміщуються з файлу на диску в оперативну пам’ять, а адреси цих сегментів заносяться у CS та DS відповідно. Сегмент стека або виділяється в області, що вказана в програмі, або співпадає (якщо він явно не описаний в програмі) з самим першим сегментом програми. Адреса сегменту стека розташовуються в регістрі SS. Для того, щоб адресувати одночасно два сегменти даних можна використовувати регістр додаткового сегмента ES. Кодовий сегмент та сегмент стеку завжди визначається вмістом своїх регістрів (CS та SS), в кожний момент виконання програми завжди використовується якийсь один кодовий сегмент та один сегмент стека. Усі сегменти можуть використовувати різні області пам’яті, а можуть частково або повністю перекриватися. Кодовий сегмент повинен обов’язково описуватися в програмі, усі інші сегменти можуть бути відсутніми. У цьому випадку при завантаженні програми в оперативну пам’ять DOS ініціює регістри DS та ES значенням адреси префікса програмного сегмента PSP. При цьому слід враховувати, що стек «зростає вниз» (при розміщенні у стек вміст регістра SP, що вказує на вершину стека, зменшується, а при зчитуванні зі стека - збільшується). Тому при розміщенні у стек будь-яких значень вони можуть затерти PSP, в зв’язку з цим слід завжди сегмент стеку описувати в програмі явно та задавати для нього розмір, достатній для нормальної роботи. У вказівник команд ІР завантажується зсув точки входу в програму (вибирається з операнда директиви END), у вказівник стека SP – зсув кінця сегмента стека. Програму можна завершити двома способами, наприклад, через функцію 4СН (EXIT) переривання 21Н в будь-який момент, або ж через функцію 00Н переривання 21Н або переривання INT 20H, у випадку коли CS вказує PSP. Програми типу *.ЕХЕ та *.СОМ розрізняються форматом вхідного тексту, процедурою підготовки виконуваного файлу, а також форматами завантажувальних файлів. Для створення ЕХЕ-програми необхідно виконати наступні команди: TASM /LA /ZI ім’я файлу.asm TLINK /X /V ім’я файлу.obj ім’я файлу.exe При створенні програми *.СОМ необхідно виконання двох умов: вхідний текст програми повинен мати відповідний формат з використанням мінімальної моделі пам’яті; необхідно після компоновки отримати виконуваний файл з розширенням *.СОМ. При використанні пакета ТАSM при виклику компонувальника необхідно вказати ключ /Т: TASM /Z /N ім’я файлу.asm TLINK /X /T ім’я файлу.obj ім’я файлу.com При використанні програм типу *.сом при виклику асемблера ключ /ZI не використовується, аналогічно при виклику компонувальника ключ /V також не використовується. Ці ключі є неприйнятними для програм типу *.сом. Хід роботи: Створив асемблер програму для .exe Код Lab4.exe .model small .stack 100h .data message db "Hello World! $'' .code start: mov ax, @data mov ds, ax mov ah, 09h mov dx, offset message int 21h mov ax, 4c00h int 21h end start Результат виконання Lab4.exe D CS:0000 Створив асемблер програму для .com Код LabCOM.com .model tiny .code org 100h start: mov ah, 09h mov dx, offset message int 21h ret message db "Hello World!",0Dh,0Ah,'$' end start Результат виконання LabCOM.com D DS:100 Висновок: На цій лабораторній роботі я ознайомився зі структурою виконуваних програм *.ЕХЕ та *.СОМ та їх образом в пам’яті. Створив виконувальні файли .exe та .com для програми. Продемонстрував їх роботу та їх образ в пам’яті. Отримав очікуваний результат. Труднощів не зустрів.
Антиботан аватар за замовчуванням

07.05.2023 05:05-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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