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

МОДУЛЬНЕ ПРОГРАМУВАННЯ

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

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

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

Рік:
2024
Тип роботи:
Практична робота (завдання)
Предмет:
Системне програмування та операційні системи

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

Засоби системного програмування Практична робота № 6 МОДУЛЬНЕ ПРОГРАМУВАННЯ Створюючи програмне забезпечення на мові Асемблера проектувальник потенційно може зіткнутись з такими ситуаціями: необхідність компонування декількох програм написаних на різних мовах програмування (наприклад, для об’єднання потужності мов високого рівня та ефективності асемблера); програма, написана у вигляді одного модуля, може виявитись завеликою для асемблювання; окремі модулі можуть бути написані різними проектувальниками з метою подальшої інтеграції; з причини великого розміру EXTRN SUBPROG:FAR MAINPROG: . . CALL SUBPROG . . PUBLIC SUBPROG SUBPROG: . . . RET Директива EXTRN має такий формат: EXTRN ім’я : тип [, … ] Можна призначити більше одного імені (до кінця рядка) або закодувати додаткові директиви EXTRN. В іншому асемблерному модулі відповідне ім’я повинно бути визначене і ідентифіковане як PUBLIC. Існують такі типи елементів: ABS, BYTE, WORD, DWORD, FAR, NEAR. Ім’я може бути визначене через EQU і повинно задовольняти реальному визначенню імені. Директива PUBLIC вказує асемблеру і компонувальнику, що адреса вказаного ідентифікатора є доступною з інших програм. Директива має такий формат: PUBLIC ідентифікатор [, … ] Можна призначити більше одного ідентифікатора (до кінця рядка) або закодувати додаткові директиви PUBLIC. Ідентифікатори можуть бути мітками (включаючи PROC-мітки), змінними або числами. Неправильними ідентифікаторами є імена регістрів та EQU-ідентифікатори, що призначають більш як двобайтні значення. Існує декілька способів компонування програм. Кожен з них характеризується одною або декількома такими рисами: директиви EXTRN і PUBLIC в якості міток; спільний кодовий сегмент - шляхом використання директиви PUBLIC в заголовку кодового сегменту кожної з програм, що компонуються; спільні дані. Використання директив EXTRN і PUBLIC в якості міток Програма на рисунку нижче складається з основної програми MAINPROG та підпрограми SUBPROG. Директива EXTRN в основній програмі визначає SUBMUL як точку входу в підпрограму. Підпрограма містить директиву PUBLIC, яка вказує компонувальнику на те, що точкою входу для виконання є мітка SUBMUL. Підпрограма перемножує вміст регістру AX (значення з поля даних PRICE) на вміст регістру BX (значення з поля даних QTY), при цьому результат операції буде розміщено в регістровій парі DX:AX (в даному випадку – 002E 4000). В підпрограмі відсутній сегмент даних, оскільки вона не визначає ніяких даних. *Примітка: Для успішного компонування компонувальник потребує знайти хоча б один стековий сегмент. В підпрограмі не визначено стекового сегменту, оскільки вона використовує ті ж самі стекові адреси, що й основна програма. Таким чином, стек, що визначається в основній програмі, є доступним і в підпрограмі. Використання спільного кодового сегменту В основній програмі та в усіх підпрограмах, що компонуються разом, необхідно використати атрибут PUBLIC в директиві SEGMENT: CODESG SEGMENT PARA PUBLIC 'CODE' В даному випадку з таблиці ідентифікаторів слідує, що узагальнений тип кодового сегменту – PUBLIC. Необхідно зауважити, що карта компонування вказує на наявність в програмі лише одного кодового сегменту - внаслідок того, що заголовки кодових сегментів основної програми та підпрограми співпадають, компонувальник об’єднує їх в один фізичний кодовий сегмент. Використання спільних даних Наявність спільних даних уможливлює обробку в одному асемблерному модулі даних, що є визначеними в іншому асемблерному модулі. Для того, щоби змінні PRICE та QTY визначались в основній програмі, але завантаження значень з цих областей пам’яті в регістри BX та AX виконувалась в підпрограмі, необхідно виконати такі зміни в програмах з попереднього пункту: в основній програмі ідентифікатори PRICE та QTY визначені як PUBLIC. Сегмент даних так само визначений як PUBLIC; в підпрограмі ідентифікатори PRICE та QTY визначені як EXTRN та WORD. Таке визначення вказує асемблеру на довжину цих полів в 2 ба...
Антиботан аватар за замовчуванням

29.05.2014 22:05

Коментарі

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

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

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

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

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

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

Admin

26.02.2019 12:38

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

Новини