logo search
AOM / Мельник А

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 команд.