Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOM / Мельник А. Архітектура комп'ютера.doc
Скачиваний:
1832
Добавлен:
17.05.2015
Размер:
6.19 Mб
Скачать

3.2.4.1. Команди переходу

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

92

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

Є два шляхи вироблення умови, яка буде перевірятись командою умовного перехо­ду. Перший шлях вироблення умови передбачає формування коду умови, як результату виконання деяких операцій. Цей код може бути поміщений в доступний користувачеві регістр. Наприклад, арифметичні операції додавання, віднімання і т. д. можуть форму­вати дворозрядний код умови, який приймає одне з наступних чотирьох значень: нуль, додатне, від'ємне, переповнення. В такому комп'ютері буде чотири різних команди умов­ного переходу:

BRPX- перехід до комірки X,якщо результат додатній;

BRNX- перехід до комірки X,якщо результат від'ємний;

BRZX- перехід до комірки X,якщо результат рівний нулю;

BROX- перехід до комірки X,якщо відбулось переповнення.

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

BRE R3, R4, X

задає перехід до комірки X, якщо вміст регістра R3 дорівнює вмісту регістра R4.

На рис. 3.6 показано приклад програми, в якій використано безумовний перехід та умовні переходи з застосуванням обох описаних вище шляхів формування умови.

Зауважимо, що перехід може бути як в напрямку збільшення, так і в напрямку змен­шення адреси. Приклад показує, як умовний та безумовний переходи можуть бути ви­користані для створення повторюваних циклів команд. Команди від комірки 202 до ко­мірки 210 будуть виконуватись повторно, аж поки результат віднімання Yвід Xне стане рівним нулю.

93

Розглянемо приклад виконання задачі додавання п чисел, яку можна виконати шля­хом послідовного виконання команд (рис. 3.7а), або з використанням команд переходів (рис. 3.7b). Tyт Nj (j = 1,2,...,n) - адреса в пам'яті кожного із n чисел, і (і=1,2,...,п) - адреси розміщення команд, S- адреса розміщення результуючої суми.

Використання переходів вимагає введення додаткових команд очистки Clear RO, задання кількості п повторів виконання тіла програми, зменшення вмісту регістра R1, який використовується як лічильник, а також команди аналізу умови. Разом з тим, вико­ристання переходів зменшує об'єм програм, зокрема в наведеному прикладі взамін п+1 команд, де п - кількість чисел в масиві, використано лише 6 команд.

3.2.4.2. Команди пропуску

Команда пропуску включає передбачувану адресу. Типово пропуск передбачає, що одна команда буде пропущена. Ця команда не вимагає наявності адресного поля. Ти­повим її прикладом є команда increment-and-skip-if-zero (ISZ) - приріст на одиницю та перехід якщо нуль. Розглянемо наступний фрагмент програми (рис. 3.8).

94

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

Соседние файлы в папке AOM