Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach.docx
Скачиваний:
5
Добавлен:
24.12.2018
Размер:
245.92 Кб
Скачать

Формати даних, команд та способи адресації

На рисунку2.5 показані основні типи даних, які використовуються.

Рисунок. 2.5 Основні типи даних.

При виборі форматів слід виходити з принципів RISC-обробки, відповідно до яких використовується мінімальна кількість форматів команд. Найбільш бажаним є використання одного (32-розрядного) формату. Прийнятним можна також вважати варіант, коли команди мають різну довжину.

Рисунок 2.8 Формати операційних 32-розрядних команд

Рисунок 2.9 Формати команд різної довжини

На рисунках 2.8 і 2.9 наведені можливі формати команд.

На рисунку 2.8 показані формати команд, відповідні другому випадку. Операційні команди (рисунок 2.8, а) мають довжину 16 розрядів і містять 4 поля: 7-розрядне поле коду операції (OP) і три 3-розрядних поля для завдання регістрів джерел і приймача. Типова двомісна операція типу додавання виконується за схемою R1 Я <R2> * <R3>.

Команди звернення до пам'яті, звернення до підпрограм, переходів, а також команди, що використовують безпосередні операнди мають довжину 32 розряду (рис. 2.8, б).

Крім полів OP, R1 і R2 є 19-розрядне поле зміщення (disp). Адреса пам'яті визначається складанням вмісту R2 і disp: A = <R2> + disp.

На рис. 2.9 показаний приклад 32-розрядного формату.

Команда на рис. 2.9 містить 6 полів: 7-розрядне поле коду операції (OP), 1-розрядне поле SCC дозволяє, або забороняє установку прапорців. Поля DEST, SRS1 і SRS2 задають, відповідно, регістр-приймач і регістри-джерела даних.

Однорозрядне поле IMM визначає зміст 13-розрядного поля SRS2. Якщо IMM = 0, то вміст зазначеного поля інтерпретується як номер регістра, в іншому випадку-розглядається як 13-розрядна константа. У командах звернення до пам'яті воно використовується як зміщення. При цьому адреса пам'яті визначається як A = <SRS1> + SRS2.

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

Форматом команди називається заздалегідь обговорена структура полів в її кодах, дозволяюча ЕОМ розпізнавати складові частини коду.

Головним елементом коду команди є код операції(КОП), що визначає, які дії будуть виконані по цій команді. Під нього виділяється N старших розрядів формату. У інших розрядах розміщуються А1 і А2 v адреси операндів. А3 - адреса результату.

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

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

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

По функціональному призначенню в системі команд ЕОМ розрізняють наступні групи:

1)Команди передачі даних(обмін входами між регістрами процесора, процесора і оперативною пам'яттю, процесора і периферійними установками).

2)Команди обробки даних(команди складання, множення, зрушення,

3)Команди передачі управління(команди безумовного і умовного переходу).

4)Команди додаткові(типу RESET, TEST, -).

Група команд передачі управління забезпечує примусову зміну порядку виконання команд в програмі.

Команди, що відтранслюють, записуються в сусідні елементи пам'яті в порядку їх дотримання в програмі. При природному порядку виконання команд в програмі, адреса кожної наступної команди визначається по вмісту

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

Більшість алгоритмів можуть бути реалізовані невеликим базовим набором команд. В той же час система команд має бути повною, тобто містити усі команди, які потрібні для інтерпретації алгоритму в машинних кодах. ЕОМ загального призначення має універсальний набір команд і застосовується в основному для вирішення тривіальних(стандартних) завдань.

Існують 2 різні принципи пошуків операндів в пам'яті: асоціативний і адресний.

Асоціативний пошук(пошук за змістом осередку, що запам'ятовує) припускає перегляд вмісту усіх елементів пам'яті для виявлення коду, що містить задану командою асоціативну ознаку.

Адресний пошук припускає, що операнд знаходиться за адресою, вказаною в адресному полі команд.

Виконавською адресою операнда називається двійковий код номера елементу пам'яті, по якому буде записаний або лічений оператором.

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

Способи адресації класифікують:

1)по наявності адресної інформації в команді(явна і неявна адресація);

2)по кратності звернення в оперативну пам'ять;

3) за способом формування адрес елементів пам'яті

При явній адресації операнда вкоманді є поле адреси цього операнда.

При неявній v адресне поле в команді відсутнє, а адреса операнда мається на увазі кодом операції. Наприклад, з команди може бути виключена адреса приймача адресата, при цьому мається на увазі, що результат записується на місці другого операнда.

По кратності звернення в оперативну пам'ять розрізняють:

1)безпосереднюадресацію(directaddressing)

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

2)прямуадресацію(immediateaddressing)

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

3)непрямуадресацію(indirectaddressing)

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

Відносна адресація

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

Індексна адресація

Для роботи програм з масивами, що вимагають однотипних операцій над елементами масиву, зручно використати індексну адресацію.

Система команд повинна бути функціонально повної і включати, як мінімум, наступні команди: 1) звернення до пам'яті з читання та запису; 2) цілочисельні арифметичні для чисел із знаком і без знака (додавання, віднімання, множення, ділення, порівняння); 3) арифметичні з ПК (додавання, віднімання, множення, ділення, порівняння); 4) логічні (порозрядне "І", "АБО" і "Що виключає АБО"); 5) зрушень на довільне число тактів; 6) умовних і безумовних переходів; 7) роботи з підпрограмами; 8) завантаження в регістри безпосередніх операндів; 9) вводу-виводу; 10) управління обчислювальним процесом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]