Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції з ОТМ та С.doc
Скачиваний:
8
Добавлен:
01.04.2025
Размер:
4.78 Mб
Скачать

Лекція Система команд, що використовуються в екк. Способи адресації команд та даних

Під системою команд ЕКК розуміється структура або, що те саме, формати команд програм, форма надання інформації (даних) в ОЗП, способи адресації даних і набір операції.

Система команд для кожного типу ЕКМ різна і налічує 100-200 різних операцій, зміст яких визначається реалізацією АЛП в конкретному типі ЕКМ. З функціональної точки зору систему команд будь-якої ЕКМ можна розділити на три групи:

  • команди передачі даних;

  • команди керування;

  • команди обробки даних.

Команди передачі даних забезпечують пересилку інформації, не виконуючи при цьому ніяких операцій по їх обробці. У таких командах звичайно задають напрям передачі, джерело і приймач інформації. До таких команд відносяться, наприклад, команди, що виконують наступні функції: вміст одного з елементів пам'яті заслати у внутрішній (БРЗП) процесора, вміст одного регістра передати в іншій і т.д.

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

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

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

Дані, що обробляються в процесі виконання команд, прийнято називати операндами. Розрізняють двооперадні (наприклад, «складання»), одноонерандні (наприклад, «інкремент») і безоперандні команди (наприклад, «команда» зупинки роботи ЕОМ).

Команди ЕОМ є двійковим кодом певного формату, який повинен містити наступну інформацію:

  • яку конкретно операцію необхідно виконати;

  • де розміщуються операнди, що беруть участь в операції;

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

  • звідки необхідно взяти код наступної команди. Отже, структура команд має дві частини:

  • операційну;

  • адресну.

Кожна частина містить декілька полів (рис. 5.8)

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

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

Число розрядів п, що відводиться для КОП, залежить від числа операцій, передбачений системою команд, а в загальному випадку визначається з виразу:

п = [log2 т]

де : т — число операцій.

Для виконання більшості операцій необхідно знати довжину (Д) команди, спосіб адресації даних над якими буде виконуватися операція, і місце розміщення результату операції. З цією метою вводяться ознаки виконання команди, ознака адреси (ОА) і місце розміщення результату операції (Р), для яких в команді виділяється поле ознак.

Ознака Д визначає довжину команди. Команди можуть бути короткими (16 біт) і довгими (32 біти). Якщо розрядність чарунки ПЗП складає 16 розрядів то коротка команда розміщується в одній чарунці, а довга - у двох. Якщо розрядність чарунки ПЗП складає 32 розряди, то в одній чарунці можна розмістити дві короткі команди або одну довгу. Аналізуючи значення ознаки Д, процесор визначає цикл обробки команд.

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

  • безпосередня;

  • пряма;

  • непряма;

  • непряма з індексацією;

  • відносна.

Розглянемо ці ознаки адресації операндів.

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

Пряма адресація. Цей спосіб адресації припускає, що виконавча адреса вказується в коді команди. Виконавчою адресою може бути або адреса чарунки ОЗП, або адреса однієї з чарунок БРЗП процесора. У першому випадку адресацію називають абсолютною, в другому - регістрової (рис. 5.9).

Непряма адресація. При даному способі адресації в коді команди вказується адреса, адреси операндів (непряма адреса). Наприклад, адреса операнда, поміщається в одну з чарунок БРЗП, адреса якої указується в команді, тобто виконується побічно-регістрова адресація (рис. 5.10).

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

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

Якщо на зсув відведено n-розрядів, то можна адресувати 2n адрес пам'яті, сусідніх вмісту базового регістра. Такий спосіб адресації називають «прямою індексною адресацією». При використанні «непрямої індексної адресації» виконавча адреса вибирається з чарунки ОЗП, адреса якої в свою чергу обчислюється за правилами прямої адресації.