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

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

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

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

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування

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

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” / Кафедра ЕОМ Лабораторна робота №1 дисципліни:” Системне програмування” Мета: Ознайомитись з програмною моделлю 32 розрядних процесорів Intel та оволодіти навиками створення програм, використовуючи 32 розрядний асемблер. Теоретичні відомості : Регістри користувача Як випливає з назви, призначеними для користувача регістри називаються тому, що програміст може використовувати їх при написанні своїх програм. До цих регістрів відносяться (рис.1): вісім 32-бітових регістрів, які можуть використовуватися програмістами для зберігання даних і адрес (їх ще називають регістрами загального призначення (РЗП)): eax/ax/ah/al; ebx/bx/bh/bl; edx/dx/dh/dl; ecx/cx/ch/cl; ebp/bp; esi/si; edi/di; esp/sp. шість сегментних регістрів: cs, ds, ss, es, fs, gs; регістри управління та стану: регістр прапорів eflags/flags; регістр покажчика команди eip/ip. Чому багато з цих регістрів приведені з розділовою межею? (рис. 1) Ні, це не різні регістри — це частини одного великого 32-розрядного регістра. Їх можна використовувати в програмі як окремі об'єкти. Так зроблено для забезпечення працездатності програм, написаних для молодших 16-розрядних моделей мікропроцесорів фірми Intel, починаючи з i8086. Мікропроцесори i486 і Pentium мають в основному 32-розрядні регістри. Їх кількість, за винятком сегментних регістрів, таке ж, як і у i8086, але розмірність більше, що і відбито в їх позначеннях — вони мають приставку e (Extended). Регістри загального призначення Всі регістри цієї групи дозволяють звертатися до своїх “молодших” частин (див. рис. 1). Відмітимо, що використовувати для самостійної адресації можна тільки молодші 16 і 8-бітові частини цих регістрів. Старші 16 біт цих регістрів як самостійні об'єкти недоступні. До РЗП відносяться: eax/ax/ah/al (Accumulator register) — акумулятор. Застосовується для зберігання проміжних даних. У деяких командах використання цього регістра обов'язкове; ebx/bx/bh/bl (Base register) — базовий регістр. Застосовується для зберігання базової адреси деякого об'єкту в пам'яті; ecx/cx/ch/cl (Count register) — регістр-лічильник. Застосовується в командах, що проводять деякі дії, що повторюються. Його використання часто неявно і приховано в алгоритмі роботи відповідної команди. Наприклад, команда організації циклу loop окрім передачі управління команді, що знаходиться за деякою адресою, аналізує і зменшує на одиницю значення регістра ecx/cx; edx/dx/dh/dl (Data register) — регістр даних. Так само, як і регістр eax/ax/ah/al, він зберігає проміжні дані. У деяких командах його використання обов'язково; для деяких команд це відбувається неявно. Наступні два регістри використовуються для підтримки операцій, що проводять послідовну обробку ланцюжків елементів, кожний з яких може мати довжину 32, 16 або 8 біт: esi/si (Source Index register) — індекс джерела. edi/di (Destination Index register) — індекс приймача (одержувача). У архітектурі мікропроцесора на програмно-апаратному рівні підтримується така структура даних, як стек. Для роботи із стеком в системі команд мікропроцесора є спеціальні команди, а в програмній моделі мікропроцесора для цього існують спеціальні регістри: esp/sp (Stack Pointer register) — регістр покажчика стека. Містить покажчик вершини стека в поточному сегменті стека. ebp/bp (Base Pointer register) — регістр покажчика бази кадру стека. Призначений для організації довільного доступу до даних усередині стека. Використання жорсткого закріплення регістрів для деяких команд дозволяє компактніше кодувати їх машинне уявлення. Знання цих особливостей дозволить вам при необхідності хоч би на декілька байт заощадити пам'ять, займану кодом програми. Завдання: Варіант №22 : Знайти суму перших К елементів масиву A={a[i]}, що задовольняють умову 2*с <= a[i] <=3*d Виконання роботи : Програма виконує сумування елементів масиву при умові 2*с <= a[i] <=3*d, числа с і d задаються спочатк...
Антиботан аватар за замовчуванням

03.03.2013 12:03

Коментарі

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

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

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

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

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

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

Admin

26.02.2019 12:38

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

Новини