- •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
- •Список рекомендованої літератури
Непряме регістрове адресування з постіндексуванням
Синтаксис Асемблера має вигляд
([bd,An],Ri.s*SCALE,od),
де bd – базове зміщення; Ri.s*SCALE – значення індексного регістра An або Dn, яке множиться на масштабний множник SCALE – 1, 2 ,4 або 8; od – вихідне зміщення; s – символ розрядності індексного регістра, може дорівнювати W або L. Вміст індексного регістра Ri.s трактується як число зі знаком і у разі s = W знак поширюється на 32 розряди.
Наприклад, запис A3.W*2 означає, що за індекс у команді слугує вміст 16 молодших розрядів регістра адреси А3, зсунутий на 1 розряд ліворуч та розширений знаком до 32 розрядів.
Команда
CLR ([$1234,A2],D3.L,$5678)
очищуватиме комірку пам’яті з ефективною адресою ЕА, яка підраховується в такий спосіб. Припустимо, що вміст регістра А2 становить $400600, а регістра D3 – відповідно $1000. Частина ефективної адреси ЕА, подана у квадратних дужках, має вигляд
$
+
$001234
$401834
Припустимо, що за цією адресою у пам’яті зберігається число $600600. Тоді повна ефективна адреса, зазначена у команді, матиме вигляд
ЕА = $600600 + $1000 + $5678 = $606C78.
Внаслідок виконання команди буде обнулено 16 молодших розрядів даного, яке зберігається у пам’яті, розпочинаючи з адреси $606C78.
Непряме регістрове адресування з преіндексуванням
Синтаксис Асемблера має вигляд
([bd,An,Ri.s*SCALE],od)
Ефективна адреса ЕА підраховується аналогічно до попереднього способу.
Команда
CLR ([$1234,A2,D3.L]$5678)
очищуватиме комірку пам’яті з ефективною адресою ЕА, частина якої, подана у квадратних дужках, матиме вигляд
$400600 + $1234 + $1000 = $402834.
Припустимо, що розпочинаючи з цієї адреси, у пам’яті зберігається довге слово $600600, тоді
ЕА = $600600 + $5678 = $605С78.
Внаслідок виконання команди буде обнулено 16 молодших розрядів даного, яке зберігається у пам’яті, розпочинаючи з адреси $605С78.
Непряме відносне адресування з індексуванням
Синтаксис Асемблера має вигляд
(*+d,PС,Ri.s*SCALE)
або
(ххх,PС,Ri.s*SCALE).
Вмістом PС вважається адреса наступної команди.
За непрямого відносного адресування з постіндексуванням та преіндексуванням ефективна адреса формується як за непрямого регістрового адресування, але замість вмісту регістра Аn використовується вміст програмного лічильника PС:
ЕА = [PС + bd] + (Xn) * SCALE + od – у разі постіндексування
EA = [PС + (Xn) * SCALE + bd] + od – у разі преіндексування
Якщо замість PС вказати ZPС, то можна задати в команді значення програмного лічильника, дорівнюване 0.
Нижче наводяться приклади використовування команди JMP з різними способами адресування:
JMP ($400610,PС,A2.W)
JMP (*+$10,PС,A2.W)
JMP ($4,PС,A2.W)
JMP (*+$1000,PС,A2.W)
JMP ($400610,ZPС,A2.W)
Команди Асемблера МП68000 можуть займати від одного до 5 байт, а старших моделей – до 6 байт.
Контрольні запитання:
Наведіть формат типової команди МП М680Х0.
Зазначте, де у форматі типової команди є джерело, а де – приймач.
В який спосіб у форматі команди зазначається розрядність операндів?
У яких системах числення можна подавати операнди, адреси та зміщення у командах мови Асемблера МП фірми Motorola?
Які способи адресування операндів підтримує МП МС68000?
Які способи адресування операндів підтримує додатково МП МС68020 і старших моделей і з чим це пов’язано?
Контрольні запитання підвищеної складності:
З якою метою, на Ваш погляд, використовується при роботі з масивами непряме регістрове адресування з постіндексуванням?
З якою метою, на Ваш погляд, використовується при роботі з масивами непряме регістрове адресування з преіндексуванням?
У яких випадках доцільно використовувати кожний із зазначених в пп.. 1 та 2 видів адресування?
