Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Антонов О.С., Хiхловська I.В. Обчислювальна тех...doc
Скачиваний:
15
Добавлен:
01.09.2019
Размер:
4.12 Mб
Скачать

12.2.7 Команди організації програмних циклів

Для організації циклів використовується команда DBсс. Вказаний у команді регістр Dn є лічильником циклів у цьому циклі. При виконанні команди DBсс спочатку перевіряється виконання умови, заданої у команді. Якщо умова виконується, то МП вибирає наступну команду програми (умовний вихід з циклу). Якщо ж умова не виконується, то вміст регістру Dn декрементується. Якщо при цьому вміст регістру Dn становить –1, то також вибирається наступна команда (цикл завершується). Якщо ж вміст Dn не дорівнює –1, то виконується перехід до команди з адресою (PC + Ds), яка є початком циклу. Команда DBсс припускає використання будь-яких умов, вказаних у таблиці 12.3. Команда організації циклу DBF реалізує безумовне виконання заданої кількості циклів, а команда DBT — безумовний вихід з циклу.

12.2.8 Команди звернення до підпрограм

Команда виклику підпрограм JSR завантажує у РС з комірки пам’яті, адреса якої вказується у команді, адресу першої команди підпрограми. Перед цим поточний вміст РС (адреса наступної команди) запам’ятовується у стеку. Виклик підпрограми виконується також командою BSR, яка використовує відносне адресування, аналогічно команді BRA. Повернення до програми, що викликає, після завершення підпрограми здійснюється командою RTS, яка повертає із стека РС його поточне значення, чим забезпечує перехід до виконання наступної команди програми. Як правило, перша команда підпрограми завантажує у стек поточне значення регістру SR з метою збереження ознак останнього результату. У цих випадках слід при поверненні з підпрограми використовувати команду RTR, яка відновлює поточне значення байта CCR (ознаки X, N, Z, V, C) та вміст лічильника команд РС.

Команди передавання управління наведено у табл. 12.4.

До команд керування також відносяться команди організації переривань:

    • TRAP (TRAP) команда звернення до підпрограми обслуговування виключень. Команда завантажує до стека супервізора поточний вміст регістрів SR і PC, а потім завантажує у РС початкову адресу (вектор) підпрограми обслуговування відповідного виключення, яке відповідає числу #Dt = 0 – 15, що входить до команди;

    • TRAPV (TRAP ON OVERFLOW) команда виконується аналогічно команді TRAP при умові встановлення ознаки переповнювання V = 1 і викликає виключення переповнювання;

    • ILLEGAL (TAKE ILLEGAL INSTRUCTION TRAP) команда включає відповідне виключення при надходженні невірного коду команди;

    • RTE (REYURN FROM EXCEPTION) повернення з підпрограми обслуговування виключень. Команда є привілейованою і може виконуватися лише в режимі супервізора. При її виконанні відбувається поновлення вмісту програмного лічильника і регістра SR із стека;

і спеціальні команди:

    • NOP (NOT OPERAND) команда здійснює перехід до наступної команди без виконання будь-яких операцій;

    • STOP (LOAD STATUS REGISTER AND STOP) є привілейованою командою і виконується в режимі супервізора. Завантажує у регістр SR слово, яке вказано в команді, після чого процесор припиняє роботу;

Таблиця 12.4 – Команди передавання управління

Синтаксис асемблера

Операція

Адресація

JMP <EA>

<dst>  PC

Непряма регістрова (усі види), пряма (коротка та довга), відносна, відносна

з індексуванням

BRA ds

PC + ds  PC

Відносна

JSR <EA>

SP – 4  SP, PC  (SP), <dst>  PC

Непряма регістрова (усі види), пряма (коротка та довга), відносна, відносна

з індексуванням

BSR ds

SP – 4  SP, PC  (SP),

PC + ds  PC

RTS

(SP)  SP, SP + 4  SP

RTR

(SP)  CCR, SP + Z  SP,

(SP)  PC, SP + 4  SP

Bcc ds

Якщо (сс) виконується, то PC + ds  PC

DBcc, ds

Якщо (сс) не виконується,

то Dn–1Dn; якщо Dn  -1,

то PC + ds  PC

    • RESET (RESET EXTERNAL DEVICES) команда формує сигнал RESET на відповідному виводі МП. Використовується для початкового встановлення підсистем МПС;

    • CHK (CHECK REGISTER AGAINST BOUNDS) спеціальна команда, яка виконує порівняння вмісту відповідного регістра з межею, що завдана вмістом ефективної адреси, якщо значення виходить за межу, то виконується відповідне переривання;

    • LINK (LINK AND ALLOCATE) зменшує значення вказівника стека на 4, завантажує вміст регістра адреси, який вказано в команді до стека, завантажує значення вказівника стека регістр адреси, збільшує значення вказівника стека на 4. Таким чином, команда завантажує нове значення вказівника стека і зберігаючи у стеку і регістрі адреси дані для повернення до вихідних значень;

    • UNLK (UNLINK) команда відмінює зміни, які відбулися в результаті виконання команди LINK.

Синтаксіс команд організації переривань і спеціальних команд подано у табл. 12.5.

Таблиця 12.5 – Перелік команд організації переривань і спеціальних команд

Синтаксис

Асемблера

Операція

Тип адресування

TRAP #Dt

(SSP) – 2 → (SSP), (SR) → SSP

(SSP) – 4 → (SSP), (PC) → SSP;

Ve(#Dt) → РС

TRAPV

Якщо Ve = 1, то виконується аналогічно TRAP,

якщо Ve = 0, то команда не виконується

ILLEGAL

Якщо код команди невірний, то аналогічно TRAP

RTE

(SP) → SR; SR + 2 → (SP); SP → PC;

(SP) + 4 → SP

NOT

(PC) + 2 → PC;

STOP #WS

WS → SR і зупин програми

RESET

Встановлення початкового стану пристроїв МПС

CHK <EA>,Dn

Якщо Dn < 0 або Dn > <EA>, аналогічно TRAP

Непряма регістрова (усі види), пряма (коротка та довга), відносна, відносна з індексуванням

LINK An, dS

(SP) – 4 → (SP); An → SP; (SP) → An;

(SP) + dS → (SP)

UNLK An

An → SP; (SP) → An; (SP) + 4 → (SP)

Контрольні запитання:

  1. Які прапорці виставляє МП фірми Motorola при виконанні команд пересилань?

  2. Які прапорці виставляються при виконанні арифметичних операцій?

  3. Які прапорці виставляються при виконанні логічних операцій?

  4. З якою метою використовується команда СМР <src>, <dst> і як вона виконується?

  5. Наведіть приклади виконання команд ASL та LSL, з операндом, який дорівнює $82 на 2 розряди і поясність результати.

  6. З якою метою виконуються команди циклічних зсувів?

  7. Поясніть, як виконується команда CMPM (A3)+, (A4)+.

  8. Де вміщується адреса переходу при виконанні команди JMP <EA>?

  9. Як формується адреса нового вмісту програмного лічильника РС при виконанні команди BRA ds?

  10. Які дії МП МС68ххх викликає виконання команди виклику ПП JSR <EA>?

  11. Які дії МП МС68ххх викликає виконання команди повернення з ПП RTS?

  12. Які умови можна вказувати у команді умовного переходу Всс?

  13. Як перевіряють команди DBсс та DBF умову завершення циклу, задану у команді, яка виконує вихід з циклу?

  14. Яка команда перевіряє потрапляння заданого операнда у вказаний в ній діапазон значень і як вона працює?

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