Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТ МП.doc
Скачиваний:
187
Добавлен:
10.02.2016
Размер:
5.13 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 (RETURN FROM EXCEPTION)– повернення з підпрограми обслуговування виключень. Команда є привілейованою і може виконуватися лише в режимі супервізора. При її виконуванні відбувається поновлення вмісту програмного лічильника і регістра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

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

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

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

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

NOР

(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 на два розряди і поясність результати.

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

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

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

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

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

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

Контрольні питання підвищеної складності:

  1. Які дії МП МС68ххх спричинює виконування команди виклику ППJSR <EA>?

  2. Які дії МП МС68хххспричинює виконування команди повернення з ППRTS?

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

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