Структура центрального процесора.



Nbsp;

ЗМІСТ

ВСТУП......................................................................................................... 3

1. ПОСТАНОВКА ЗАДАЧІ........................................................................ 4

   1.2 Обробка числових двомірних масивів.......................................... 4

   1.3 Робота із рядковими змінними...................................................... 4

2. ТЕОРЕТИЧНА ЧАСТИНА..................................................................... 5

   2.1 Мова програмування асемблер .................................................... 5

   2.2 Архітектура процесора 8086 ....................................................... 6

   2.3 Структура центрального процесора............................................. 8

   2.4 Регістри......................................................................................... 10

3. ПРАКТИЧНА ЧАСТИНА..................................................................... 13

4. РЕАЛІЗАЦІЯ ПРОГРАМИ................................................................... 22

5. РЕЗУЛЬТАТИ РОБОТИ....................................................................... 41

ВИСНОВОК.............................................................................................. 45

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ............................................ 46

 


 

ВСТУП

 

Написання розрахунково-графічної роботи з дисципліни “Програмування на асемблері”, є однією із важливих форм навчання, так як дозволяє:

· систематизувати, закріпити та розширити теоретичні і практичні знання по спеціальності та застосувати їх при рішенні конкретних задач;

· розвивати навички самостійної роботи;

· визначити рівень підготовки студента.

У запропонованих методичних вказівках містяться вимоги по порядку виконання та оформлення РГР, варіанти завдань, список рекомендованої літератури та додатки. Методичні вказівки до виконання призначені для студентів денної та заочної форм навчання.

Мета РГР полягає у формуванні у студента навичок практичної роботи з програмування на асемблері задач по обробці масивів та рядкових величин.

 


 

ПОСТАНОВКА ЗАДАЧІ

Обробка числових двомірних масивів .

Масив повинен вводитись у вигляді константи та з клавіатури.

Ввести матрицю А позитивних цілих чисел розмірності N N:

а) Підрахувати кількість парних елементів та їх суму.

б) Замінити непарні елементи на 0.

в) Визначити номер стовпця, що містить саму більшу кількість нулів.

г) Отримати нову матрицю B шляхом додавання до кожного елементу рядка його наступного елементу (до останнього елементу рядка додається перший елемент рядка).

 

Робота із рядковими змінними .

Дано текст, який додається з латинських букв, цифр і закінчується крапкою. Всерединітексту є розділові знаки: коми і крапки з комою. Слова відокремлюються одне від одного розділовими знаками або пропусками. Рядок (або текст) вводиться з клавіатури.

Якщо в тексті двічі підряд трапляється символ “кома”, надрукувати аварійну зупинку.

 


 

ТЕОРЕТИЧНА ЧАСТИНА

Мова програмування асемблер.

Програми, створені на мові програмування низького рівня Асемблер мають такі характеристики, як максимальна швидкодія та малий обсяг у пам'яті. У разі, коли швидкість роботи програми чи мінімальний обсяг її в пам'яті грає ключову роль, для створення програм використовують мову асемблера. Навіть існують певні класи програм, які для свого написання потребують виключно мови асемблера.

Нині новітні системи програмування дозволяють об'єднувати в одну програму фрагменти, написані на різних мовах, тому часто застосовується практика складання програм з фрагментів, написаних на різних мовах, причому в програмуванні найкритичніших фрагментах програми чи в таких, що потребують найвищої швидкодії, застосовується мова асемблера. Не виключене й зворотне застосування даної властивості новітніх систем програмування - коли в програму мовою асемблера додається фрагмент чи кілька, написаних мовами високого рівня. Саме так зазвичай чинять при написанні драйверів комп'ютерних пристроїв.

Мова асемблера має ще певну навчальну цінність. Вона відображає найтонші архітектурні особливості і режими роботи мікропроцесора комп'ютера, ця мова програмування надає захоплюючу можливість вивчення структури організації роботи машини на „низькому рівні", вивчення можливостей і ресурсів апаратної частини комп'ютера, особливостей роботи операційної системи комп'ютера.

 


 

Арх і тектура процесора 8086 .

 

Системний блок персонального комп'ютера містить: блок живлення; системну (материнську) плату; адаптери зовнішніх пристроїв; накопичувачі на жорстких магнітних (НЖМД) і гнучких (НГМД) дисках, а також ряд інших пристроїв. Для нас найбільший інтерес представляє системна плата, на якій розміщуються постійне запам'ятовуючий пристрій ПЗУ (ROM - read only memory), оперативний запам'ятовуючий пристрій ОЗП (RAM - random access memory), процесор і логіка управління, пов'язані між собою шинами.

Фізично і ОЗУ і ПЗУ виконані у вигляді мікросхем. Характерним для персонального комп'ютера є той факт, що при вимиканні електроживлення вміст ОЗУ втрачається (енергозалежна пам'ять), а ПЗУ - ні (енергозалежна пам'ять).

Одна з основних завдань ПЗУ забезпечити процедуру старту персонального комп'ютера. У ПЗУ зберігаються базова система введення / виведення BIOS, а також деякі службові програми і таблиці, наприклад, початковий завантажувач, програма тестування POST і т.п.

Оперативна пам'ять ОЗУ призначена для тимчасового зберігання програм і даних, якими вони маніпулюють. Логічно оперативну пам'ять можна представити у вигляді послідовності осередків, кожна з яких має свій номер, званий адресою.

Центральний процесор (ЦП) у сучасних персональних комп'ютерах виконаний у вигляді однієї надвеликої інтегральної мікросхеми (НВІС). ЦП виконує машинні команди, вибираючи їх в заданій послідовності з оперативної пам'яті. Робота всіх електронних пристроїв комп'ютера координується сигналами управління, виробленими ЦП і деякими іншими НВІС, сигналами тактового генератора, за допомогою яких синхронізуються дії всіх сигналів.

Можливості комп'ютера більшою мірою залежать від типу встановленого процесора і його тактової частоти. Сімейство процесорів 80х86 корпорації Intel включає в себе мікросхеми: 8086, 80186, 80286, 80386, 80486, Pentium, Pentium II, Pentium III і т.д. Сумісні з 80х86 мікросхеми випускають також фірну AMD, IBM, Cyrix. Особливістю цих процесорів є наступність на рівні машинних команд: програми, написані для молодших моделей процесорів, без будь-яких змін можуть бути виконані на більш старших моделях. При цьому базою є система команд процесора 8086, знання якої є необхідною передумовою для вивчення інших процесорів.

 


 

Структура центрального процесора.

Структуру центрального процесора Intel 8086 можна розділити на два логічних блоку:

- блок виконання (EU: Execution Unit);

-  блок інтерфейсу шин (BIU: Bus Interface Unit).

(Інтерфейс (interface) - це сукупність засобів, що забезпечують спряження пристроїв та програмних модулів як на фізичному, так і на логічному рівні).

До складу EU входять: Арифметичне-логічний пристрій ALU, пристрій управління CU і десять регістрів. Пристрої блоку EU забезпечують обробку команд, виконання арифметичних і логічних операцій.

Три частини блоку BIU - пристрій управління шинами, блок черги команд і регістри сегментів - призначені для виконання наступних функцій:

- управління обміном даними з EU, пам'яттю і зовнішніми пристроями введення / виведення;

-  адресація пам'яті;

- вибірка команд (здійснюється за допомогою блоку черги команд Queue, який дозволяє вибирати команди з попередженням).

З точки зору програміста, процесор 8086 складається з 8 регістрів загального призначення, 4 сегментних регістрів, регістра адреси команд (лічильника команд) і регістра прапорів. Процесор виставляє на шину адреси адресу обираних з пам'яті команд (або даних), які надходять в шестибайтного буфер (черга команд), а потім виконуються.

Адресну шину можна представити у вигляді 20 провідників, в кожному з яких може або протікати напруга заданого рівня (сигнал 1), або відсутні (сигнал 0). Таким чином, мікропроцесор оперує з двійковою системою числення (двійковій системою подання даних). Символьна інформація кодується відповідно до коду ASCII (Американський стандартний код для обміну інформацією). Числові дані кодуються відповідно до двійкової арифметикою. Негативні числа представляються в додатковому коді.

Мінімальна одиниця інформації, відповідна двійковому розряду, називається біт (Bit). Група з восьми бітів називається байтом (Byte) і являє собою найменшу адресованих одиницю - елемент пам'яті. Біти в байті нумерують справа наліво цифрами 0 ... 7.

 


 

Регістри.

Процесор 8086 має 14 шістнадцятирозрядних регістрів, які використовуються для управління виконанням команд, адресації і виконання арифметичних операцій. Регістр, що містить одне слово, адресується по імені.

Регістри загального призначення. До них відносяться 16-розрядні регістри АХ, ВХ, СХ, DX, кожен з яких поділений на 2 частини по 8 розрядів:

АХ складається з АН (старша частина) і AL (молодша частина);

ВХ складається з ВH і BL;

СХ складається з СН і CL;

DX складається з DH і DL;

У загальному випадку функція, виконувана тим чи іншим регістром, визначається командами, в яких він використовується. При цьому з кожним регістром пов'язано деякий стандартне його значення.

Нижче наведено деякі характерні функції кожного регістру:

· регістр АХ служить для тимчасового зберігання даних (регістр акумулятор); часто використовується при виконанні операцій додавання, віднімання, порівняння та інших арифметичних і логічних операцій;

· регістр ВХ служить для зберігання адреси деякої області пам’яті (базовий регістр), А також використовується як обчислювальний регістр;

· регістр СХ іноді використовується для тимчасового зберігання даних, Але в основному служить лічильником, в ньому зберігається число повторень однієї команди або фрагмента програми;

· регістр DX використовується головним чином для тимчасового зберігання даних; часто служить засобом пересилання даних між різними програмними системами, в якості розширювача акумулятора для обчислень підвищеної точності, А також при множенні і діленні.

Регістри для адресації. У мікропроцесорі існують чотири 16-бітових (2 байти або 1 слово) регістра, які можуть приймати участь в адресації операндів. Один з них одночасно є і регістром загального призначення - це регістр ВХ, або базовий регістр. Три інші регістру - це покажчик бази ВР, індекс джерела SI і індекс результату DI. Окремі байти цих трьох регістрів недоступні.

Будь-який з названих вище 4 регістрів може використовуватися для зберігання адреси пам'яті, а команди, що працюють з даними з пам'яті, можуть звертатися за ними до цих регістрів. При адресації пам'яті базові та індексні регістри можуть бути використані в різних комбінаціях. Різноманітні способи поєднання в командах цих регістрів та інших величин називаються способами або режимами адресації.

Регістри сегментів. Є чотири регістри сегментів, за допомогою яких пам'ять можна організувати у вигляді сукупності чотирьох різних сегментів. Цими регістрами є:

· CS - регістр програмного сегменту (сегменту коду) визначає місце розташування частини пам'яті, що містить програму, тобто. виконуються процесором команди;

· DS - регістр інформаційного сегмента (сегменту даних) ідентифікує частина пам'яті, призначеної для зберігання даних;

· SS - регістр стекового сегмента (сегмента стека) визначає частину пам'яті, яка використовується як системний стек;

· ES - регістр розширеного сегмента (додаткового сегмента) вказує додаткову область пам'яті, що використовується для зберігання даних.

Ці 4 різні області пам'яті можуть розташовуватися практично в будь-якому місці фізичної машинної пам'яті. Оскільки місце розташування кожного сегмента визначається тільки вмістом відповідного регістра сегменту, для реорганізації пам'яті достатньо всього лише, змінити цей вміст.

Регістр покажчика стека. Покажчик стека SP - це 16-бітовий регістр, який визначає усунення поточної вершини стека. Покажчик стека SP разом з сегментним регістром стека SS використовуються мікропроцесором для формування фізичної адреси стека. Стек завжди зростає в напрямку менших адрес пам'яті, тобто. коли слово поміщається в стек, вміст SP зменшується на 2, коли слово витягується з стека, мікропроцесор збільшує вміст регістру SP на 2.

Регістр покажчика команд IP. Регістр покажчика команд IP, інакше званий регістром лічильника команд, має розмір 16 біт і зберігає адресу деякої комірки пам'яті - початок наступної команди. Мікропроцесор використовує регістр IP спільно з регістром CS для формування 20-бітового фізичної адреси чергової виконуваної команди, при цьому регістр CS задає сегмент виконуваної програми, а IР - зміщення від початку сегмента. У міру того, як мікропроцесор завантажує команду з пам'яті і виконує її, регістр IP збільшується на число байт в команді. Для безпосередньої зміни вмісту регістра IP служать команди переходу.

Регістр прапорів. Прапори - це окремі біти, що приймають значення 0 або 1. Регістр прапорів (ознак) містить дев'ять активних бітів (з 16). Кожен біт даного регістра має особливе значення, деякі з цих біт містять код умови, встановлений останньої виконаної командою. Інші біти показує поточний стан мікропроцесора.

Біти регістра прапорів мають наступне призначення:

OF (ознака переповнення) - дорівнює 1, якщо виникає арифметичне переповнення, тобто коли обсяг результату перевищує розмір комірки призначення;

DF (ознака напряму) - встановлюється в 1 для автоматичного декремента в командах обробки рядків, і в 0 - для інкремента;

IF (ознака дозволу переривання) - переривання дозволені, Якщо IF = 1. Якщо IF = 0, то розпізнаються лише немаскірованние переривання;

TF (ознак трасування) - якщо TF = 1, то процесор переходить в стан переривання INT 3 після виконання кожної команди;

SF (ознака знака) - SF = 1, коли старший біт результату дорівнює 1. Іншими словами, SF = 0 для позитивних чисел, і SF = 1 для негативних чисел;

ZF (ознака нульового результату) - ZF = 1, Якщо результат дорівнює нулю;

AF (ознака додаткового перенесення) - цей прапор встановлюється в 1 під час виконання команд десяткового додавання і віднімання при виникненні переносу або позички між полубайта;

PF (ознака парності) - ця ознака встановлюється в 1, Якщо результат має парне число одиниць;

CF (ознака перенесення) - цей прапор встановлюється в 1, якщо має місце перенесення або позику з старшого біта результату; він корисний для твору операцій над числами довжиною в кілька слів, які пов'язані з переносами і позичками зі слова в слово;

X - зарезервовані біти.

Легко помітити, що всі прапори молодшого байти регістра прапорів встановлюються арифметичними або логічними операціями процесора. За винятком прапора переповнення, всі прапори старшого байта відображають стан мікропроцесора і впливають на характер виконання програми. Прапори старшого байта встановлюються і скидаються спеціально призначеними для цього командами. Прапори молодшого байта є кодами умовного переходу для зміни порядку виконання програми.

 


 

ПРАКТИЧНА ЧАСТИНА

 

Опис програми.

В даній роботі використовуються такі регістри загального призначення. До них відносяться 16-розрядні регістри АХ, ВХ, СХ, DX, кожен з яких поділений на 2 частини по 8 розрядів:

АХ складається з АН (старша частина) і AL (молодша частина);

ВХ складається з ВH і BL;

СХ складається з СН і CL;

DX складається з DH і DL.

Опишемо основні підпрограми , що обробляють рядкові дані та дані відповідно заданого масиву . Розглянемло відповідні підпрограми роботи із двохвимірним масивом даних .


Дата добавления: 2018-10-27; просмотров: 235; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!