загрузка...
загрузка...
На головну

Команди переходів (альтернативні команди)

Впрограммах управління технологічними процесами завжди є багато різних гілок, так як хід програми триває в тому чи іншому напрямку в залежності від значень параметрів процесу. Зміни програми здійснюються командами переходів (розгалужень) - J (j) МР, які становлять основу сучасної АСУ ТП. Виконання команд переходів можна порівняти з точками прийняття рішень, і саме ця група команд надає мікропроцесорної системі риси "інтелекту" та адаптації.

Команди переходів, не пов'язані з будь-якими умовами, зазвичай стають громіздкими і важко сприймаються.

Трехбайтние команди переходу до підпрограми називають викликами - CALL. У команді переходу обов'язково вказується адреса або мітка переходу. При виконанні виклику необхідно запам'ятати поточне утримання програмного лічильника, так як після виконання підпрограми треба повернутися до перерваної програми, а для цього треба передати адресаповернення знову в програмний лічильник. Остання функція реалізується однобайтном командою повернення RET (Return - повернення).

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

[(SP-1] <= (PCH), [(SP) -2] <= PCL), PC <=

Ситуація ускладнюється, якщо виконувана підпрограма викликає ще одну підпрограму, а це друга третю і т. Д., Іншими словами, якщо організовуються вкладені підпрограми, то в цьому випадку необхідний стік, реалізований в ОЗУ.

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

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

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

Передбачені команди переходів, які здійснюють передачу управління як по одиничному, так і за нульовим значенням кожного з умов. Команда JC, наприклад, означає Jump if carry, т. Е. Перехід, якщо біт перенесення дорівнює 1 (табл. 2.4). Протилежна команда позначається JNC - Jump if not carry, т. Е. Перенесення відсутній (CY = 0).

Число машинних тактів, необхідних для виконання команд умовних переходів, залежить від умови (значення) відповідного тригера стану. Якщо перевіряються умови не задовольняються, то команда виконується протягом циклів М1, М2 і М3 вибірки трехбайтной команди. Якщо ж умова задовольняється, то умовні переходи виконуються за п'ять машинних циклів і, відповідно, вимагають більшого числа тактів.

Таблиця 2.4. мнемоніка операцій

 Умова  Переклад  мнемоніка
 Jump  Call  Return
 Результат не дорівнює нулю Результат дорівнює нулю Немає перенесення Є перенесення Непарний результат Парний результат Позитивний результат Негативний результат  No Zero Zero No Carry Carry Parity Odd Parity Even Plus Minus  JNZ JZ JNC JC JPO JPE JP JM  CNZ CZ CNC CC CPO CPE CP CM  RNZ RZ RNC RC RPO RPE RP RM
поданням операнда «-- попередня | наступна --» спеціальні команди
загрузка...
© om.net.ua