Основи електроніки

Програмування мікропроцесорів, одно-, двух-, триадресні команди. Командне управління ЕОМ. Узагальнена структура команди. Безпосередня, неявна та пряма адресація. Відмінність регістрової адресації від прямої. Схема обчислення 32-бітової лінійної адреси.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид контрольная работа
Язык украинский
Дата добавления 19.03.2010
Размер файла 129,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

МIНIСТЕРСТВО ОСВIТИ I НАУКИ УКРАЇНИ

ХАРКIВСЬКИЙ НАЦІОНАЛЬНИЙ УНIВЕРСИТЕТ РАДIОЕЛЕКТРОНIКИ

Кафедра ЕН

КОНТРОЛЬНА РОБОТА

з дисципліни

“Електронні пристрої“

Виконав: Перевірив:

ст. гр. ГКСР доц. каф.

Харків 2010

Програмування мікропроцесорів

У ЕОМ використовуються одно-, двух- або триадресні команди. Самою швидкодіючою і найбільш гнучкою для програмування є триадресна команда вигляду

КОП

А1

А2

А3

У структурі цієї команди є поле коди операції (КОП) і три адреси операндів А1, А2, А3. За допомогою цієї команди легко програмуються багато операцій. Наприклад, складання Z = X + Y можна запрограмувати так: у полі КОП закодувати адресу мікропрограми складання, що знаходиться в постійній пам'яті УУ, в А1 закодувати адресу операнда Х, в А2 - Y, а в А3 розмістити адресу, куди направити результат складання. Недоліком триадресних команд (триадресних ЕОМ) є значні витрати устаткування на розміщення адрес А1, А2, А3 і найбільша розрядність шини даних.

Для усунення цих недоліків використовують двух- або одноадресні команди вигляду

КОП

А1

А2

КОП

А0

При двоадресних командах одна з адрес фіксують. Наприклад, результат операції передається за адресою (на місце) першого операнда. При цьому значення першого операнда, природно, стирається. При одноадресній команді для виконання операцій фіксують і місце знаходження першого операнда, використовуючи, наприклад, спеціальний регістр - акумулятор (ЕАХ) - або верхній елемент (вершину) стекової пам'яті. Після виконання команди, якщо вона не остання, процесор витягує наступну, яка зазвичай розташовується за більш старшою адресою (природна адресація). Для визначення її адреси використовується лічильник команд (IP або EIP), значення якого збільшується на i =1, 2 . кожного разу до адреси наступної команди природного порядку. Якщо при галуженнях в алгоритмі виникає необхідність перейти до виконання команди, відмінної від природного порядку, використовуються одноадресні команди умовного або безумовного переходу, що управляють. При безумовному переході вмісту EIP завжди привласнюється поле адреси команди А0. При командах умовного переходу аналізується стан відповідного прапора регістра EFLAGS, який обробляється пристроєм управління за кодом поля Коп. Залежно від значення прапора EIP може бути привласнено А0 або EIP + i. Укрупнена схема командного управління ЕОМ показана на мал. 1.3. Для прочитування операндів і команд в процесор окрім прямої адресації, при якій поле адреси указує на елемент пам'яті (регістр МП), де зберігається операнд або команда, може використовуватися також безпосередня, непряма або асоціативна адресація.

При безпосередній адресації операнд I розташовується в самій команді вигляду

КОП

I

Цей операнд (константа) може бути використаний операційним блоком (АЛУ) для обчислень, і не вимагається додаткового звернення до ОЗУ.

При непрямій адресації в команді розташовується адреса осередку або регістра МП, де зберігається адреса операнда. При асоціативній адресації в полі адреси розміщується ключ (ознака, тег) пошуку або асоціація і для пошуку використовуються мікрооперації порівняння інформації “за змістом”, а не дешифрування адреси в ОЗУ.

У нових МП система команд постійно удосконалюється і доповнюється, зберігаючи програмну сумісність з молодшими моделями. В даний час в i486, Pentium прийнята структура команди, показана на мал. 1, і довжина команди може досягати 16 байт при 32-бітовій адресації.

Мал. 1. Схема командного управління ЕОМ

Обов'язковою для кожної команди є наявність поля КОП розмірністю в 1 або 2 байти. Всі інші поля команди можуть бути відсутніми або розширюють функції адресації або призначення команди. Так, наявність перед командою одного з префіксів групи змінює її функції, визначені за умовчанням, таким чином:

-REP (у групі REPE / REPZ, LOCK, REPNE / REPNZ) - поширює виконання операції (КОП) на всі елементи ланцюжка;

-AS - змінює розрядність 16 (32) -битного ефективної адреси, що обробляється командою, на 32 (відповідно в дужках на 16) -битный адреса;

-OS - змінює розрядність операнда в 16 (32) битий на розрядність в 32 (16) битий;

-SO - указує новий сегментний регістр для команди з групи можливих.

7 6

3

0

7 6

3

0

mod

reg/коп

r/m

SS

index

Base

REP

AS

OS

SO

КОП

ModR/M

SIB

Disp

I

0;1

0;1

0;1

0;1

1;2

0;1

0;1

0;1;2;4

0;1;2;4

Число байт

Число байт

Мал. 2 Узагальнена структура команди

Префікси можуть розташовуватися перед командою у будь-якому порядку, тільки по одному з групи. У наступних двох байтах команди Mod R / M і SIB кодуються додаткові відомості про код операції і спосіб обчислення адрес операндів. Поля цих байтів мають наступні призначення:

-mod і r / m в різних комбінаціях визначають 8 регістрових (mod = <11>) і 24 індексних типу адресації;

-reg / коп визначає або номер один з 8 регістрів РОН, або розширює на 3 бита поле КОП;

-r / m визначає або номер РОН, в якому знаходиться операнд, або з полем mod кодує 32 типи адресації.

У разі 32-бітової адресації байт Mod R / M містить інформацію про необхідність використання додаткових код з байта SIB, що складається з наступних полів:

-SS - масштабний множник (00 - х1, 01 - х2, 10 - х4, 11 - х8);

-index - поле 3-бітової коди номера РОН, який є індексним регістром;

-base - поле номера РОН, який містить базову адресу.

За байтом Mod R / M або SIB команди часто слідує поле зсуву Disp. Це поле указує на “видалення” операнда від адреси, заданої в базовому регістрі команди. Залежно від коди поля mod (00, 01, 10) величина зсуву займає 1, 2 або 4 байти.

У полі I команди іноді розміщується безпосередній операнд, який залежно від КОП може розташовуватися в 8 / 16 / 32 бітах останнього поля команди.

Дані, що беруть участь в обчисленнях, зазвичай розташовуються в ОЗУ. Для завдання місця знаходження операндів найширше в адресних ЕОМ використовуються безпосередня, пряма і непряма адресації.

При безпосередній адресації 8 / 16 / 32-бітовий операнд розміщується в полі I команди і після витягання команди з ОЗУ він відразу бере участь в операції. Так, команда складання add ах, 8AD5h в полі I містить двобайтовий код <1000101011010101>, який МП використовує для складання з вмістом регістра АХ. Недоліком цієї адресації є те, що команда працює з жорстко закріпленими даними (константою).

При прямій адресації до пам'яті в команді закодована адреса осередку ОЗУ, в якому знаходиться операнд. При зверненні до ОЗУ поле адреси Аi команди (плюс адреса сегменту) прочитується в регістр адреси і потім передається на ША. Код з ША дешифрується і порушує відповідний осередок ОЗУ для взаємодії з ШД. Так, при читанні операнд з осередку передається на ШД, потім в кеш-1 і АЛУ для участі у виконанні КОП команди. При записі результат операції по ШД передається в осередок (мал. 1). Недоліком прямої (абсолютною) адресації до пам'яті є значна розрядність адресної частини команди, яка збільшується із збільшенням числа осередків ОЗУ і подвоюється при двоадресній команді. Як приклад команди з абсолютною адресацією може бути команда виду mov eax, [21051944], яка завантажує акумулятор вмістом осередку 21051944h. У цій команді адреса 21051944h збільшує її довжину на 32 бита. Різновидом прямої є неявна, регістрова і адресація введення / виводу.

Відмінність регістрової адресації від прямій до пам'яті полягає в тому, що в полі Аi кодується коротка адреса регістра РОН, в якому знаходиться операнд. При цьому довжина команди зменшується і МП не звертається до ОЗУ за операндом, тим самим зменшується час виконання операції. Проте перед виконанням команди операнд повинен знаходитися вже у відповідному РОН. Для організації регістрової адресації РОН EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI привласнюються відповідно трьохбітові адреси 000, 001 ., 111 і якщо в полі reg розташовується, наприклад, адреса регістра <010>, то це означає, що команда виконує операцію за участю операнда регістра EDX. Наприклад, команда з регістровою адресацією mov edx, ecx двоадресна, передає вміст ECX в РОН EDX.

При неявній адресації адресне поле відсутнє. Операнд розташовується в пристрої, який неявно задається полем Коп. Після дешифрування цього поля мікропрограма УУ указує місце операнда (наприклад, регістра AL, однобайтної команди ааа). Команди неявної адресації мають найменшу довжину, але вузько спеціалізовані.

Для обміну із зовнішніми пристроями будь-яка ЕОМ з МП i86 ., i486, Pentium має певне число буферних регістрів - портів, через які і здійснюється процес введення / виведення інформації. Кожному порту привласнюється своя адреса в діапазоні від 0 до 64К-1. Для обміну з портами призначені команди введення in або виведення out, де як приймач або джерело зафіксований EAX / AX / AL. У цих командах використовується пряма адресація введення / виводу, наприклад, in ах, 22 - завантажити AX вмістом регістра з 22h порту або непряма адресація введення / виводу із зверненням за адресою порту в регістр DX (out dx, ах - вивести AX в регістр порту, адреса якого занесена в DX). Відмітимо, що команди введення / виводу окрім поля КОП мають ще другий байт адреси порту або один байт КОП з використанням для адресації вмісту регістра DX. Причому номери портів вирівнюються по межах передаваних даних. Так при 32-бітових операціях вони нумеруються 0, 4, 8 ., 252 ., 65532.

Істотним недоліком прямої адресації є необхідність закріплення операндів за певними пристроями і номерами осередків (статичний розподіл пам'яті). З метою розширення можливості зберігання даних у всіх областях ОЗУ, організації контролю і захисту від неправильного використання областей і мультизадачності обчислень в ЕОМ введені динамічний режим розподілу пам'яті, непряма і відносна адресації операндів (мал. 1.5.). Для цього вся область, що адресується, розбивається на сегменти і сторінки. Кожному сегменту привласнюється початкова адреса (база) і верхня адреса (база + межа). Надалі адресація в командах здійснюється щодо бази сегменту (ефективна адреса ЕА). Така адресація називається базовою. У МП 8086 / 88 для зберігання базових адрес використовуються сегментні регістри CS, DS, SS, ES.

У процесорах i486, Pentium базові адреси і межі сегментів зберігаються в дескрипторах, які розміщуються в тіньових сегментних регістрах (CS) (DS) (SS) (ES) (FS) (GS).

Базова адреса масиву і при необхідності індекс операнда масиву зберігаються в РОН МП. Причому індекс масиву можна масштабувати шляхом множення його на величину 21, 22, 23. Масштабування еквівалентне мікроопераціям зрушення вмісту індексного регістра вліво на величину L1, L2, L3. Тоді в загальному випадку лінійна адреса операнда з використанням непрямої адресації обчислюється за формулою

ЛА = ВС + (Х 2<SS> + (ВМ +D)).

Вміст полий команди дешифрується і встановлюється значення масштабу <SS>, номерів регістрів РОН, де зберігаються базова адреса масиву ВМ і індекс Х масиву. Потім базова адреса підсумовується з вмістом зсуву Disp поля команди ВМ + D. Одночасно величина в Х зрушується на 0, 1, 2, 3 розряди вліво відповідно до значення <SS>. Потім величина індексного регістра Х підсумовується з ВМ + D і тим самим обчислюється ефективна адреса операнда, тобто її видалення від початку сегменту

ЕА = Х 2<SS> + (ВМ + D).

Мал. 4 Схема обчислення 32-бітової лінійної адреси

Величина ЕА порівнюється з величиною межі сегменту. Якщо ЕА не виходить за розміри сегменту, ефективна адреса підсумовується з базою сегменту. Тим самим визначається лінійна адреса ЛА операнда, який використовується для визначення фізичної адреси. У R- і V-режимах ця лінійна адреса співпадає з фізичною адресою ФА і передається в регістр адреси. У P-режиме ця адреса може бути більше розмірності ОЗУ і лінійна адреса з урахуванням сторінкового перетворення зазвичай перетвориться у фізичну адресу. Залежно від складових BM, X, D, 2<SS>, які можуть бути присутніми або бути відсутнім в мікроопераціях обчислення адреси, розрізняють базову, індексну і їх різновиди із зсувом адресації операндів. При базовій адресації в команді відсутній зсув і не використовується індексування. ЕА задається тільки базовим РОН окрім ESP. Шуканий РОН в мнемоніці опису команди полягає в дужки. Наприклад, mov eax, [ecx] - передати в EAX подвійне слово з ОЗУ з адресою = база сегменту + ECX.

При базовій адресації із зсувом ЕА визначається підсумовуванням вмісту РОН, закодованому в полі base, з величиною 8 / 16 / 32-розрядного зсуву в команді. Зсув в команді є цілим числом із знаком. Наприклад, команда mov eax, [esi + D] здійснює передачу в ЕАХ вмісту осередку ОЗУ з адресою, рівною сумі бази сегменту РОН ESI і зсуву в полі команди + D. Відмітною особливістю способу індексної адресації із зсувом і масштабуванням від базової адресації із зсувом є можливість масштабування індексної адреси Х шляхом множення його на 1, 2, 4 або 8. При множнику 1 ці способи адресації не відрізняються. При множниках 2, 4 або 8 масштабування (зрушення вліво на один - L1, два - L2 і три розряди - L3) дозволяє здійснювати обчислення адреси з урахуванням розміру елементів масиву або завдання їх порядку обробки командою. Наприклад, команда mov ecx [esi 4] + 53 передає подвійне слово, яке знаходиться в сегменті даних з ефективною адресою L2 ESI (31, 0) + 53h.

Найбільш складним способом адресації є базовый/ індексний з масштабуванням і зсувом. Для обчислення адреси в цьому способі беруть участь два РОН. Один з РОН містить індекс, який масштабується. Зсув розміром в 8, 16 або 32 біта розташовується в команді. Наприклад, команда add eax [ebx][edi 8] + 547671 здійснює складання вмісту EAX з елементом масиву, що має ефективну адресу

ЕА = EBX (31, 0) + L3 EDI (31, 0) + 547671h.

Використання команд з базовою / індексною адресацією спрощує програмування обчислень, зменшує розрядність команд і дозволяє розміщувати в операційній системі дані в будь-яких областях, що звільняються, ОЗУ, змінюючи при цьому тільки базові адреси. Для зменшення часу обчислення лінійної адреси використовується конвеєрний паралельний спосіб дешифрування команди і обчислення адрес, що дозволяє багато команд на останньому ступені обробки в МП Pentium виконувати за один такт синхронізації. У розглянутих способах адресації місце операнда кодується в команді і закріплене за програмою. При зміні базових адрес змінюються і фізичні адреси розташування операндів в пам'яті. Це ускладнює обмін даними між програмами і організацію програмних переривань. Для спрощення обміну між програмами, переривань при зверненні до підпрограм і “безадресного” пошуку і розміщення операндів в ЕОМ використовується стекова адресація. Під стек відводиться частина ОЗУ (сегмент стека з базовою адресою в регістрі SS або (SS)), яка бере участь в операціях МП з використанням реверсивного лічильника - покажчика ESP / SP. Вміст покажчика ESP / SP (вершина стека) використовується командами як поле адреси операнда. При записі в стек командами push величина ESP / SP зменшується, а при читанні командами pop покажчик збільшується на величину, рівну довжині операнда в байтах, після виконання команди. Наприклад, команди push ecx передає в ОЗУ вміст ECX по ЕА = ESP (31,0).


Подобные документы

  • Адресація мереж та вузлів. Апаратні засоби побудови ЛКМ Ethernet та Token Ring. Оцінка часу затримки сигналу мережним обладнанням. Варіант кабельної схеми корпоративної сітки та її обладнання. Створення логічних підмереж. Варіант IP-адресації вузлів.

    курсовая работа [410,7 K], добавлен 25.06.2013

  • Проектування пристроїв автоматичної точної синхронізації. Способи синхронізації, виміру її параметрів і подачі команди на включення вимикача генератора способом точної синхронізації. Одержання постійного часу випередження. Структурна схема синхронізатора.

    дипломная работа [165,0 K], добавлен 19.05.2011

  • Фізичні основи будови та принцип дії напівпровідникових приладів. Класифікація та характеристики підсилювальних каскадів. Структурна схема та параметри операційних підсилювачів. Класифікація генеруючих пристроїв. Функціональні вузли цифрової електроніки.

    курсовая работа [845,3 K], добавлен 14.04.2010

  • Дослідження сутності мультимікропроцесорних систем, що мають два й більше компонент, які можуть одночасно виконувати команди. Загальні відомості про цифрову обробку сигналів. Сигнальні процесори компанії Analog Devices. Функціонування циклічних буферів.

    реферат [55,1 K], добавлен 24.03.2011

  • Основні можливості пакету Image Processing. Дослідження методів перетворення цифрових зображень в середовищі Matlab. Відновлення розмитого зображення за допомогою команди deconvblind, його геометричні перетворення. Зашумлення зображення функцією motion.

    курсовая работа [2,4 M], добавлен 05.02.2015

  • Класичний метод дослідження динаміки систем автоматичного управління. Аналіз САУ в просторі станів. Методи обчислення перехідної матриці. Стійкість багатовимірних систем. Керованість, спостережуваність. Модальне управління. Оптимізація зворотного зв’язку.

    контрольная работа [651,2 K], добавлен 24.08.2015

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

    контрольная работа [255,7 K], добавлен 19.03.2010

  • Фізичні властивості електроніки. Електрофізичні властивості напівпровідників. Пасивні елементи електроніки, коливальні контури, їх використання. Кремнієві стабілітрони: будова, принцип дії, галузі використання. Напівпровідникові діоди, схеми з’єднання.

    учебное пособие [7,5 M], добавлен 16.10.2009

  • Поняття, характеристика, призначення, необхідність та задачі маршрутизаторів. Особливості прийняття рішення на відправлення дейтаграми на відповідний порт. Типи, класи та спеціальні адреси стеку ТСР/ІР. Складові повного символічного імені в ІР-мережах.

    контрольная работа [24,4 K], добавлен 22.09.2009

  • Схема полного сумматора в основе последовательного умножителя двух 4-разрядных чисел со знаком. Расчет базового элемента. Моделирование в программе MicroCAP. Схема умножителя на логических элементах, оценка его быстродействия. Основные недостатки схемы.

    курсовая работа [560,2 K], добавлен 05.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.