- •3 Модуль
- •11 Мікропроцесорні системи на універсальних мп фірми motorola
- •11.2 Побудова мпс на 16-розрядних мікропроцесорах фірми Motorola
- •11.2.1 Підсистема центрального процесорного елемента mc68000
- •11.2.2 Розподіл адресного простору мпс
- •11.2.3 Організація підсистеми пам’яті
- •11.2.4 Організація підсистем введення-виведення
- •11.4 Побудова мпс на 32-розрядних мікропроцесорах фірми Motorola
- •11.4.1 Підсистема центрального процесорного елемента
- •11.4.2 Розподіл адресного простору мпс
- •11.4.3 Організація підсистеми пам’яті мпс
- •11.4.4 Організація підсистеми введення-виведення
- •11.4.5 Підключення співпроцесора
- •12 Програмування універсальних мп
- •12.1 Мова Асемблер програмування мп фірми Motorola
- •Непряме регістрове адресування з постіндексуванням
- •Непряме регістрове адресування з преіндексуванням
- •Непряме відносне адресування з індексуванням
- •12.2 Система команд мп мс680х0 (Для самостійного вивчення)
- •12.2.1 Команди пересилань
- •12.2.2 Команди арифметичних операцій
- •12.2.3 Команди логічних операцій
- •12.2.4 Команди зсувів
- •12.2.5 Команди безумовних переходів
- •12.2.6 Команди умовних переходів
- •12.2.7 Команди організації програмних циклів
- •12.2.8 Команди звернення до підпрограм
- •12.3 Побудова програм з різною структурою мовою Асемблер
- •12.3.1 Лінійні програми
- •12.3.2 Розгалужені та циклічні програми. Підпрограми
- •12.4 Створення програмного забезпечення мпс на мп фірми Motorola
- •Список рекомендованої літератури
- •4 Модуль
- •13 Мікропроцесорні системи на мікроконтролерах фірми motorola та їхнє програмування
- •13.1 Типові мікроконтролери фірми Motorola
- •Сімейство 68нс16/916
- •13.2 Система команд мікроконтролерів фірми Motorola
- •13.3 Налаштовування вбудованих засобів мікроконтролерів
- •14 Risc-процесори фірми motorola
- •14.1 Risc-процесори PowerPc
- •14.2 Risc-процесори ColdFire
- •14.3 Система команд risc-мікропроцесорів сімейства PowerPc
- •15 Архітектура та принципи побудови процесорів цифрового оброблення сигналів
- •15.1 Основні напрямки цифрового оброблення сигналів (цос)
- •15.2 Узагальнена архітектура процесорів сімейства dsp563xx
- •15.3 Організація циклічного буфера в dsp
- •15.4 Програмна реалізація цифрового фільтра сіх
- •16 Мпс на мікроконтролерах, мікропроцесорах та dsp
- •Список рекомендованої літератури
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–1Dn; якщо 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) |
|
Контрольні запитання:
Які прапорці виставляє МП фірми Motorola при виконуванні команд пересилань?
Які прапорці виставляються при виконуванні арифметичних операцій?
Які прапорці виставляються при виконуванні логічних операцій?
З якою метою використовується команда СМР <src>,<dst> і в який спосіб вона виконується?
Наведіть приклади виконання команд ASL та LSL з операндом, який дорівнює $82 на два розряди і поясність результати.
З якою метою виконуються команди циклічних зсувів?
Поясніть, як виконується команда CMPM (A3)+,(A4)+.
Де вміщується адреса переходу при виконуванні команди JMP <EA>?
В який спосіб формується адреса нового вмісту програмного лічильника РС при виконуванні команди BRA ds?
Які умови можна зазначати у команді умовного переходу Всс?
В який спосіб перевіряють команди DBсс та DBF умову завершення циклу, задану в команді, яка виконує вихід з циклу?
Контрольні запитання підвищеної складності:
Які дії МП МС68ххх спричинює виконання команди виклику ПП JSR <EA>?
Які дії МП МС68ххх спричинює виконання команди повернення з ПП RTS?
Яка команда перевіряє потрапляння заданого операнда до зазначеного в ній діапазону значень і як вона працює?
Які команди виконують операції з бітовими полями і в який спосіб вони виконуються?