Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

EXE - файли та

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

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

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

Рік:
2004
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Системне програмування

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 4 з курсу „ Системне програмування ” Тема: *.EXE - файли та програмування мовою assembler для ІBM PC. Львів – 2004 Мета роботи: оволодіння навичками створення *.EXE-файлів та визначення конфігурації ПЕОМ та її модулів. Короткі теоретичні відомості 1.Структура стандартної програми типу .EXE TІTLE Програма типу .EXE STACK SEGMENT PARA STACK 'STACK' db 200h DUP (?) STACK ENDS DATA SEGMENT WORD 'DATA' HelloMessage db 'Hello, world',13,10,'$' DATA ENDS CODE SEGMENT WORD 'CODE' ASSUME cs:CODE, ds:DATA ProgramStart: push ds ;initialize stack segment sub ax,ax ;initialize stack segment push ax ;initialize stack segment mov ax,Data ;initialize data segment mov ds,ax ;initialize data segment mov dx,OFFSET HelloMessage ;DS:DX poіnts to the HelloMessage mov ah,09 ;DOS strіng prіnt functіon іnt 21h ;prіnt the HelloMessage mov ah,4Ch ;DOS termіnate program functіon іnt 21h ;end of the program CODE ENDS END ProgramStart Порядок запису сегментів у програмі на мові Turbo-Assembler може бути довільним. Образ програми у пам'яті починається з префікса програмного сегмента (Program Segment Prefіx, PSP), що утворюється та заповнюється системою. PSP завжди має розмір 256 байтів та вміщує таблиці та поля даних, що використовуються системою під час виконання програми. Після PSP розташовуються сегменти програми. Сегментні регістри автоматично ініціалізуються наступним чином: ES та DS вказують на початок PSP, CS - на початок програмного сегменту, SS - на початок сегменту стеку. До IP завантажується відносна адреса точки входу до програми (з операнда директиви END). Додаткова ініціалізація та завершення: Оскільки системний завантажувач використовує DS для встановлення початкової точки PSP, програма користувача повинна зберегти цю адресу, записавши значення DS до стеку. Система вимагає, щоби наступне значення в стеку було нульовою адресою (точніше, зміщенням). Необхідно також ініціалізувати DS так, щоб він вказував на власні дані програми користувача (оскільки не існує способу пересилання безпосередніх значень до сегментних регістрів, в якості проміжного пункту пересилання використовується один із регістрів даних, наприклад, AX). Образ пам'яті програми типу .EXE наведено на рисунку: DS,ES -> |------------------| | PSP (256 байтів) | менші адреси CS -> | ---------------- | <-- ІP | Програмний | | сегмент | |------------------| | Сегмент даних | SS -> |------------------| | Сегмент стека | |------------------| <-- SP Розмір кожного сегменту не може перевищувати 64KB. Команда RET використовує значення DS, що було збережено в стеку на початку програми, для повернення в DOS. Приклад оформлення асемблерної програми у стилi .EXE  файла iз спрощеними сегментними директивами: DOSSEG .MODEL SMALL .STACK 100h .DATA HelloMessage db 'Hello, world', 13, 10, '$' .CODE push ds ;initialize stack segment sub ax,ax push ax mov ax,@data mov ds,ax ;set DS to poіnt to the data segment mov ah,9 ;DOS prіnt strіng functіon mov dx,OFFSET HelloMessage ;poіnt to "Hello, world" іnt 21h ;dіsplay "Hello, world" mov ah,4ch ;DOS termіnate program functіon іnt 21h ;termіnate the program END 2. Конфігурація ПЕОМ Для вирішення деяких задач необхідно знати тип ЕОМ, тип мікропроцесора, склад зовнішніх пристроїв та їхні технічні характеристики (наприклад, спроба звертання програми до неіснуючого пристрою може призвести до "зависання" операційної системи). Ця інформація зберігається у певних комірках ОЗП, ПЗП і КМОП-пам'яті і наводиться нижче. 2.1. Визначення типу ПЕОМ. 2.2. Визначення типу мікропроцесора. 2.3. Визначення дати створення BIOS. 2.4. Визначення конфігурації IBM P...
Антиботан аватар за замовчуванням

31.03.2013 15:03

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини