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

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

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

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

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

Міністерство освіти і науки України Національний технічний університет України «Київський політехнічний інститут  ім. І. Сікорського» Кафедра автоматизації проектування енергетичних процесів і систем Лабораторна робота №4  з дисципліни «Операційні системи» «Технологія роботи з системними засобами при створенні програм. Завантаження та виконання програм DOS. Організація програм *.ЕХЕ та *.СОМ» Мета роботи: ознайомитися зі структурою виконуваних програм *.ЕХЕ та *.СОМ та їх образом в пам’яті. Порядок роботи: 1. Ознайомитися зі структурою програми *.ЕХЕ та образом такої програми у пам’яті. 2. Ознайомитися зі структурою програми *.СОМ та образом такої програми у пам’яті. 3. Засвоїти особливості створення виконуваних програм *.ЕХЕ та *.СОМ. 4. Підготувати .ЕХЕ та .СОМ програми для виведення на екран повідомлення HELLO WORD! з варіантом опису даних: msg db "Hello Word!", 0Dh, 0Ah, '$' 0Dh – символ повернення каретки (Carriage Return), 0Ah - символ переведення рядка 5. Продемонструвати роботу .ЕХЕ – та .СОМ-програм, пояcнити розподіл пам’яті для цих програм. 6. У DEBUG за допомогою команди D CS:0000 ви маєте можливість переглянути машинний код програми для ехе-програми. 7. У DEBUG за допомогою команди D DS:100 ви маєте можливість переглянути дані. Теоретична частина Основні відмінності цих програм полягають у наступному:  програми типу *.СОМ (двійковий образ коду та даних програми)  • складаються тільки з одного сегменту, в якому розміщується і код  програми, і дані, і стек;  • файл СОМ-формату не містить переміщуваних адрес;  • СОМ-файл завантажується, починається з адреси 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 Кбайт).  Ім’я – ідентифікатор конкретного сегменту, що використовується при  призначенні адреси та поєднанні з іншими сегментами.  Вирівнювання – вказує граничні значення на початок сегмента. В процесі  асемблювання, якщо поточна позиція на початку сегмента не задовольняє  встановленому атрибуту, лічильник адреси збільшується на відповідну  величину, зміщуючи початок сегменту в область старших адрес (word – початок  сегменту повинен мати парну адресу; para парна адреса, яка є кратною  параграфу, тобто 16 біт).  Поєднання – встановлює правила поєднання декількох сегментів з  однаковимим іменем. Параметр Public послідовно поєднує сегменти з  однаковим іменем в один великий сегмент, що має адресу першого з  поєднуючих сегментів.  Клас – виконує роль категорії сегмента. Усі сегменти однакового класу  під час роботи компоновщика розташовуються один за одним у пам’яті. Група – дозволяє здійснити доступ до даних з усіх сегментів, що  знаходяться в групі, за допомогою завантаження адреси групи у сегментний  регістр.  Використання директиви Model дозволяє використовувати службові  ідентифікатори, за допомогою яких можна отримати адреси сегментів, що використовуються:  @code – 16-розрядна адреса сегмента коду;  @data – 16-розрядна адреса сегмента даних типу near;  @stack – 16-розрядна адреса сегмента стека.  Наприклад, MOV AX, @DATA  MOV DS, AX ініціалізація сегмента даних.  Для створення ЕХЕ-програми необхідно виконати наступні команди: TASM /LA /ZI ім’я файлу.asm  TLINK /X /V ім’я файлу.obj  ім’я файлу.exe  При створенні програми *.СОМ необхідно виконання двох умов: • вхідний текст програми повинен мати відповідний формат з  використанням мінімальної моделі пам’яті;  • необхідно після компоновки отримати виконуваний файл з  розширенням *.СОМ.  При використанні пакета ТАSM при виклику компоновщика необхідно  вказати ключ /Т:   TASM /Z /N ім’я файлу.asm 4  Ключ /z дозволяє виведення на екран рядків вихідного тексту програми, в  яких асемблер виявив помилки (без цього ключа пошук помилок довелося б  проводити з лістингу трансляції).  /n пригнічує виведення в лістинг таблицю ідентифікаторів (переліку  символічних позначень в програмі), за рахунок чого трохи зменшується  інформативність лістингу, але скорочується його розмір.  TLINK /X /T ім’я файлу.obj  Ключ /х означає не створити файл карти map.файл.  Ключ /t означає створити виконуваний com.файл.  ім’я файлу.com  При використанні програм типу *.сом при виклику асемблера ключ /ZI не  використовується, аналогічно при виклику компоновщика ключ /V також не  використовується. Ці ключі є неприйнятними для програм типу *.сом.  Файли .asm: EXE: / COM: / Трансляція та створення файлів: EXE: / COM: / Лістинг: EXE: / / Висновок: За результатом роботи було вивчено основи структур програм *.ЕХЕ і *.СОМ та їх образом в пам’яті. Створено файли *.ЕХЕ і *.СОМ за допомогою файлу розширення *.ASM. Їх запущено в дію, програми виконані без помилок. У результаті кожна з програм вивела повідомлення ”Hello world”.
Антиботан аватар за замовчуванням

25.07.2023 18:07-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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