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. Організація програм *.ЕХЕ та *.СОМ» КИЇВ-2022 Мета роботи. ознайомитися зі структурою виконуваних програм *.ЕХЕ та *.СОМ та їх образом в пам’яті. Порядок роботи: Ознайомитися зі структурою програми *.ЕХЕ та образом такої програми у пам’яті. Ознайомитися зі структурою програми *.СОМ та образом такої програми у пам’яті. Засвоїти особливості створення виконуваних програм *.ЕХЕ та *.СОМ. Підготувати .ЕХЕ та .СОМ програми для виведення на екран повідомлення HELLO WORD! з варіантом опису даних: msg db "Hello Word!", 0Dh, 0Ah, '$' 0Dh – символ повернення каретки (Carriage Return), 0Ah - символ переведення рядка Продемонструвати роботу .ЕХЕ – та .СОМ-програм, пояcнити розподіл пам’яті для цих програм. У DEBUG за допомогою команди D CS:0000 ви маєте можливість переглянути машинний код програми для ехе-програми. У DEBUG за допомогою команди D DS:100 ви маєте можливість переглянути дані. Теоретична частина. Операційна система MS DOS передбачає два типи виконуваних програм, які мають розширення *.СОМ та *.ЕХЕ . Перед завантаженням в оперативну пам’ять СОМ- та ЕХЕ-програм DOS визначає спеціальну область оперативної пам’яті розміром 256 (100h) байт - сегментну адресу, яка називається префіксом програмного сегменту (PSP – Program Segment Prefics). PSP може використовуватися в програмі для визначення імен файлів та параметрів з командного рядка, які вводяться при запуску програми на виконання, обсягу допустимої пам'яті, змінних оточення системи та ін. При завантаженні програми в оперативну пам’ять DOS ініціалізує як мінімум три сегментних регістри: CS, DS, SS (додатковим може бути ES). Код та дані переміщуються з файлу на диску в оперативну пам’ять, а адреси цих сегментів заносяться у CS та DS відповідно. Сегмент стека або виділяється в області, що вказана в програмі, або співпадає (якщо він явно не описаний в програмі) з самим першим сегментом програми. Адреса сегменту стека розташовується в регістрі SS. Програма може мати декілька кодових сегментів та сегментів даних і в процесі виконання за допомогою спеціальних команд здійснюється переключення між ними. Основні відмінності програм типу *.СОМ та *.ЕХЕ полягають у наступному: програми типу *.СОМ (двійковий образ коду та даних програми) • складаються тільки з одного сегменту, в якому розміщується і код програми, і дані, і стек; • файл СОМ-формату не містить переміщуваних адрес; • СОМ-файл завантажується, починається з адреси PSP:0100h; • CS, DS, ES, SS вказують на PSP; • SP вказує на кінець сегмента PSP (зазвичай 0FFFEh); • ІР містить 100h (перший байт модуля) в результаті команди JMP PSP:100h; • використовується модель пам’яті TINY; • образ СОМ-файла зчитується з диску та розташовується в пам’яті, починаючи PSP:0100h; • програма генерує стек автоматично, тому в самій асемблерній програмі стек має бути відсутнім; усі дані повинні бути визначені у сегменті коду; в програмах типу *.ЕХЕ міститься спеціальний заголовок, за допомогою якого завантажувач виконує налаштування посилань на сегменти у завантаженому модулі • використовуються окремі сегменти і для коду, і для даних, і для стеку; • розмір програми типу *.ЕХЕ не має жорстких обмежень, тому що програми може мати будь-яку кількість сегментів команд та даних; • ЕХЕ-файл завантажується, починається з адреси PSP:0100h; • DS та ES вказують на початок PSP; • CS, IP, SS, SP ініціалізуються значеннями, зазначеними в заголовку ЕХЕ; • використовується модель пам’яті SMALL, яка передбачає розташування структурних частин програми у двох сегментах: сегменту кода програми (64 Кбайт) та сегменту даних і стека , що належать одній групі Dgroup (64 Кбайт). Для створення ЕХЕ-програми необхідно виконати наступні команди: TASM /LA /ZI ім’я файлу.asm TLINK /X /V ім’я файлу.obj ім’я файлу.exe При створенні програми *.СОМ необхідно виконання двох умов: • вхідний текст програми повинен мати відповідний формат з використанням мінімальної моделі пам’яті; • необхідно після компоновки отримати виконуваний файл з розширенням *.СОМ. При використанні пакета ТАSM при виклику компоновщика необхідно вказати ключ /Т: TASM /Z /N ім’я файлу.asm Хід роботи. Код програми для .COM: ; Lab4com.asm .model tiny .code org  100h program: mov ah, 09h mov dx, offset message int 21h ret message db "Hello World!",0Dh,0Ah,'$' end program Результат програми .COM: / Вигляд налагоджувача для .COM: / *У DEBUG за допомогою команди DS:100 ми маємо можливість переглянути дані. Код програми для .EXE: ; Lab4exe.asm .model small .stack 100h .data message db "Hello World! $'' .code program: mov ax, @data mov ds, ax mov ah, 09h mov dx,offset message int 21h mov ax, 4c00h int 21h end program Результат програми .EXE: / Вигляд налагоджувача для .EXE: / *У DEBUG за допомогою команди D CS:0000 ми маємо можливість переглянути машинний код програми для ехе-програми. Висновок: під час виконання лабораторної роботи було створено дві програми, які виводять повідомлення. Ознайомився з структурами програм *.ЕХЕ та *.СОМ та їхнім образом в пам’яті, їх основними відмінностями та технологією створення програм обох типів.
Антиботан аватар за замовчуванням

24.05.2023 18:02

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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