
- •5 Міністерство освіти і науки україни
- •Методичні вказівки
- •Вимоги до оформлення звіту з лабораторної роботи
- •1.3 Контрольні питання
- •2Лабораторна робота №2 арифметика цпос з фіксованою крапкою
- •2.1 Завдання
- •2.2 Порядок виконання роботи
- •2.3 Контрольні питання
- •3Лабораторна робота №3 Учбовий стенд adds2181 ez-kit Lite
- •3.1 Завдання
- •3.2 Порядок виконання роботи
- •3.3 Контрольні питання
- •4.3 Контрольні питання
- •5Лабораторна робота №5
- •5.3 Контрольні питання
- •Література
- •Додаток а Мікропроцесор adsp-2181
- •Додаток б - Команди виклику програм
- •Додаток в – Довідка по мові ассемблера asm21
Додаток б - Команди виклику програм
Ассемблер ASM21
asm21 sourcefile [-switch ...] -2181
-c |
Чутливість до регістра символів вихідного тексту програми |
-l |
Генерувати файл .LST |
-m [depth] |
Помістити макрокоманди у файл .LST |
-i [depth] |
Помістити зміст include-файлів у файл .LST |
-o filename |
Дати своє ім'я вихідному файлу (ім'я файлу за замовчуванням: SOURCEFILE.OBJ) |
-dident[=literal] |
Визначає ідентифікатор для C-препроцесора ассемблера |
-s |
Немає перевірки семантики багатофункціональних команд |
-2181 |
Використовувати специфічні команди ADSP-2181 |
Компоновщик LD21
ld21 file1 [file2 ...] [-switch ...]
ld21 -i file_all [-switch ...]
-a archfile |
Підключення до компоновщика файлу архітектури (використовується ADSP2181.ACH) |
-i file_all |
Підключення файлів, перерахованих у файлі file_all |
-e executable |
Дати своє ім'я вихідному файлу (значення за замовчуванням: 210x.EXE) |
-dryrun |
Швидке виконання для перевірки помилок зв'язку (файл .EXE не генерується) |
-g |
Створити файл .SYM таблиці ідентифікаторів |
-x |
Створити файл .MAP карти пам'яті |
-user fastlibr |
Шукає файл бібліотеки, згенерований програмою-бібліотекарем |
-dir directory; |
Визначити каталог, де шукати бібліотечні підпрограми |
-p |
Бібліотечні підпрограми завантажують сторінки в місці виклику |
Імітатор (симулятор) SIM2181
sim2181 [-switch ...]
-a archfile |
Підключення до симулятору файлу архітектури (використовується ADSP2181.ACH) |
-e exe_file |
Завантажити файл .EXE у симулятор |
-c |
Чутливість до регістра символів тексту програми |
-k keyfile |
Завантажити і виконати файл натискання клавіш |
-o msgfile |
Генерувати файл, що містить повідомлення про помилки і Command Output Window |
-w winfile |
Використовувати файл конфігурації (.WIN) |
Приклад: sim2181 -a C:\ADI_DSP\21xx\LIB\ADSP2181
Розщеплювач (спліттер) ППЗУ SPL21
spl21 exe_file promfile -pm [-switch ...]
spl21 exe_file promfile -dm [-switch ...]
spl21 exe_file promfile -loader -2181 [-s] [-i]
-pm |
Витяг інформації пам'яті програм ППЗУ |
-dm |
Витяг інформації пам'яті даних ППЗУ |
-s |
Формат файлу ППЗУ: Motorola S record (за замовчуванням) |
-I |
Формат файлу ППЗУ: Intel Hex record |
-us |
Формат файлу ППЗУ: Motorola S record byte stream |
-us2 |
Формат файлу ППЗУ: Motorola S2 record byte stream |
-ui |
Формат файлу ППЗУ: Intel Hex record byte stream |
-loader –2181 |
Генерує програму початкового завантаження БПДП у файлі ППЗУ |
Додаток в – Довідка по мові ассемблера asm21
Директиви ассемблера
.MODULE/qualifier/qualifier/ ... module_name;
.PAGE;
.CONST constant_name=expression;
.VAR/qualifier/qualifier/ ... buffer_name[length], ..;
.INIT buffer_name: init_values;
.GLOBAL buffer_name, ... ;
.ENTRY program_label, ... ;
.EXTERNAL external_symbol, ... ;
.PORT port_name;
.INCLUDE <filename>;
.DMSEG dmseg_name;
.MACRO macro_name (param1,param2, ... );
.ENDMACRO;
.LOCAL macro_label, ... ;
.NEWPAGE; Символ роздільника сторінки у файлі .LST
.PAGELENGTH #lines; Символ роздільника сторінки у файлі .LST через кожні #lines
.LEFTMARGIN #columns; Величина лівого поля у файлі .LST
.INDENT #columns; Відступ #columns у файлі .LST
.PAGEWIDTH #columns; Величина правого поля у файлі .LST
.ENDMOD;
.MODULE qualifiers: RAM, ROM, STATIC
ABS = address (не використовувати разом з STATIC)
SEG = seg_name
.VAR qualifiers: PM, DM, RAM, ROM, CIRC, STATIC
ABS = address (не використовувати разом з STATIC)
SEG = seg_name
.INIT init_values: constant, constant, ...
<filename>
^other_buffer
%other_buffer
Директиви препроцесора ассемблера
#define macro_name (param1,...) expression |
Визначити макрокоманду |
#undef macro_name |
Скасувати макрокоманду |
#include "filename" |
Додати в програму текст із файлу filename |
#if expression |
Включати текст і ассембліювати у залежності від значення expression |
#else |
Включати текст і ассембліювати, якщо попередня умова (#if, #ifdef, #ifndef) не виконується |
#endif |
Кінець умови (#if, #ifdef, #ifndef) |
#ifdef macro_name |
Включати текст і ассембліювати, якщо макрокоманда macro_name визначена |
#ifndef macro_name |
Включати текст і ассембліювати, якщо макрокоманда macro_name не визначена |
Символи і скорочення, що використовуються для опису команд ассемблера
UPPERCASE |
Явний синтаксис | |||
I0-I7 |
Індексні регістри для непрямої адресації | |||
M0-M7 |
Модифікатори регістрів непрямої адресації | |||
L0-L7 |
Кількість регістрів (довжина) циклічного буфера | |||
<data> |
Безпосередні дані | |||
<addr> |
Безпосереднє значення адреси (абсолютна адреса або мітка програми) | |||
<exp> |
Експонента (кількість зрушень) у безпосередній команді зрушення (8-розрядне число зі знаком) | |||
cond |
Умова (використовується в умовних командах) | |||
term |
Умова виконання циклу DO-UNTIL | |||
dreg |
Регістри даних: AX0, AX1, AY0, AY1, AR, MX0, MX1, MY0, MY1, MR0, MR1, MR2, SI, SE, SR0, SR1 | |||
reg |
Усі регістри (регістри даних, а також I0, I1, I2, I3, I4, I5, I6, I7, M0, M1, M2, M3, M4, M5, M6, M7, L0, L1, L2, L3, L4, L5, L6, L7, TX0, TX1, RX0, RX1, SB, PX, ASTAT, MSTAT, SSTAT (тільки читання), IMASK, ICNTL, IFC (тільки запис), CNTR, OWRCNTR (тільки запис)) | |||
; |
Крапкою з комою закінчують інструкцію | |||
, |
Комами розділяються операції, що є частинами однієї інструкції | |||
[ ] |
Квадратні дужки містять необов'язкову частину інструкції | |||
[, …] |
Кілька операцій інструкції, що випливають одна за іншою в будь-якому порядку | |||
|
Option1 |
Список можливих значень, використовувати можна тільки одне значення | ||
Option2 | ||||
Option3 | ||||
| ||||
Прийняті значення умови (cond) | ||||
EQ |
Дорівнює | |||
NE |
Не дорівнює | |||
LT |
Менше нуля | |||
GE |
більше або дорівнює нулю | |||
LE |
менше або дорівнює нулю | |||
GT |
Більше нуля | |||
AC |
Перенос АЛУ (прапор AC) | |||
NOT AC |
Немає переносу АЛУ | |||
AV |
Переповнення АЛУ (прапор AV) | |||
NOT AV |
Немає переповнення АЛУ | |||
MV |
Переповнення УН (прапор MV) | |||
NOT MV |
Немає переповнення УН | |||
NEG |
xop на вході має від’ємний знак | |||
POS |
xop на вході має позитивний знак | |||
NOT CE |
Значення лічильника не дорівнює нулю | |||
FLAG_IN |
На висновку FI рівень логічної одиниці |
Тільки для JUMP, CALL | ||
NOT FLAG_IN |
На висновку FI рівень логічного нуля | |||
|
| |||
Прийняті значення умови виконання циклу DO-UNTIL (term) | ||||
CE |
Поки лічильник не дорівнює нулю | |||
EQ |
Поки дорівнює нулю | |||
NE |
Поки не дорівнює нулю | |||
LT |
Поки менше нуля | |||
GE |
Поки більше або дорівнює нулю | |||
LE |
Поки менше або дорівнює нулю | |||
GT |
Поки більше нуля | |||
AC |
Поки встановлений прапор AC (перенос АЛУ) | |||
NOT AC |
Поки не встановлений прапор AC (немає переносу АЛУ) | |||
AV |
Поки встановлений прапор AV (переповнення АЛУ) | |||
NOT AV |
Поки не встановлений прапор AV (немає переповнення АЛУ) | |||
MV |
Поки встановлений прапор MV (переповнення УН) | |||
NOT MV |
Поки не встановлений прапор MV (немає переповнення УН) | |||
NEG |
Поки xop на вході має від’ємний знак | |||
POS |
Поки xop на вході має позитивний знак | |||
FOREVER |
Завжди (нескінченний цикл) |
Інструкції АЛУ (ALU) | |
Припустимі значення xop: |
AX0, AX1, AR, MR0, MR1, MR2, SR0, SR1 |
Припустимі значення yop: |
AY0, AY1, AF (AY0 не можна використовувати як yop у команді DIVS) |
[IF cond] |
AR |
= xop + |
yop |
; |
Додавання / Додавання з переносом | |
|
AF |
|
C |
| ||
|
yop + C |
| ||||
|
Constant |
| ||||
| ||||||
|
= xop - |
yop |
; |
Віднімання X-Y / Віднімання X-Y із запозиченням | ||
|
yop + C - 1 |
| ||||
|
Constant |
| ||||
| ||||||
|
= yop - |
xop |
; |
Віднімання Y-X / Віднімання Y-X із запозиченням | ||
|
xop + C - 1 |
| ||||
|
Constant |
| ||||
| ||||||
Допускаються значення xop: AX0, AX1, AR, MR0, MR1, MR2, SR0, SRI | ||||||
Допускаються значення yop (базовий набір): AY0, AY1, AF | ||||||
Допускаються значення yop і constant (розширений набір): AY0,AY1,AF,0,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192, 16384,32767, -2,-3,-5,-9,-17,-33,-65,-129,-257,-513, -1025, -2049,-4097,-8193,-16385,-32768 |
[IF cond] |
AR |
= xop |
AND |
yop ; |
Побітові AND, OR, XOR | |
|
AF |
|
OR |
| ||
|
XOR |
| ||||
| ||||||
[IF cond] |
AR |
= xop PASS |
xop |
; |
Пропуск, стирання | |
|
AF |
|
yop |
| ||
|
constant |
| ||||
| ||||||
Допускаються значення yop (базовий набір): AY0, AY1, AF | ||||||
Допускаються значення yop і constant (розширений набір): AY0,AY1,AF,0,1,2,3,4,5,7,8,9,15,16,17,31,32,33,63,64,65,127,128,129,255,256,257,511,512,513,1023,1024,1025,2047,2048,2049,4095, 4096,4097,8191, 8192,8193,16383,16384,16385,32766,32767,-1,-2, -3,-4,-5,-6,-8,-9,-10,-16,-17,-18,-32,-33,-34,-64,-65,-66,-128, -129,-130,-256,-257,-258,-512,-513,-514,-1024,-1025,-1026, -2048,-2049,-2050,-4096,-4097,-4098,-8192,-8193,-8194,-16384, -16385,-16386,-32767,-32768 |
[IF cond] |
AR |
= |
- |
xop |
; |
Зміна знака | |||
|
AF |
|
|
yop |
| ||||
| |||||||||
|
= |
NOT |
xop |
; |
Побітова інверсія | ||||
|
|
|
yop |
| |||||
|
|
|
0 |
| |||||
| |||||||||
|
= |
ABS xop ; |
Абсолютне значення | ||||||
| |||||||||
|
= |
yop + 1 ; |
Інкремент | ||||||
| |||||||||
|
= |
yop |
- 1 ; |
Декремент | |||||
| |||||||||
|
= |
DIVS |
yop, xop ; |
Розподіл | |||||
| |||||||||
|
= |
DIVQ |
xop ; | ||||||
| |||||||||
|
= |
TSTBIT n of xop |
; |
Побітові операції | |||||
|
SETBIT n of xop |
| |||||||
|
CLBIT n of xop |
| |||||||
|
TGBIT n of xop |
| |||||||
| |||||||||
Допускаються значення xop: AX0, AX1, AR, MR0, MR1, MR2, SR0, SR1 | |||||||||
Допускаються значення n (0 – самий молодший розряд): 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 | |||||||||
Побітові операції: | |||||||||
TSTBIT SETBIT CLBIT TGBIT |
Поразрядна операція AND з одиницею Поразрядна операція OR з одиницею Поразрядна операція AND з одиницею Поразрядна операція XOR з одиницею |
NONE = <ALU> ; |
Результат не використовується |
| |
Де <ALU> - будь-яка безумовна операція основної системи команд ALU (за винятком команд розподілу DIVS і DIVQ). Виконавши таку операцію, ALU установлює прапори стану, а значення результату відкидається. Так виробляється тестування ALU без зміни значень у регістрах AR і AF. |
Інструкції УН (MAC) | |
Припустимі значення xop: |
MX0, MX1, AR, MR0, MR1, MR2, SR0, SR1 |
Припустимі значення yop: |
MY0, MY1, MF |
[IF cond] |
MR |
= xop * |
yop |
|
(SS) |
; |
Множення | ||
|
MF |
|
xop |
|
(SU) |
| |||
|
(US) |
| |||||||
|
(UU) |
| |||||||
|
(RND) |
| |||||||
| |||||||||
|
= MR + xop * |
yop |
|
(SS) |
; |
Множення / Накопичення | |||
|
|
xop |
|
(SU) |
| ||||
|
|
(US) |
| ||||||
|
|
(UU) |
| ||||||
|
|
(RND) |
| ||||||
| |||||||||
|
= MR + xop * |
yop |
|
(SS) |
; |
Множення / Віднімання | |||
|
|
xop |
|
(SU) |
| ||||
|
(US) |
| |||||||
|
(UU) |
| |||||||
|
(RND) |
| |||||||
| |||||||||
|
= MR [(RND)] ; |
Передати MR | |||||||
| |||||||||
|
= 0 ; |
Очищення | |||||||
| |||||||||
IF MV SAT MR ; |
Умовне насичення MR | ||||||||
| |||||||||
(S) |
Вхідні значення зі знаком (xop, yop) | ||||||||
(U) |
Вхідні значення без знака (xop, yop) | ||||||||
(RND) |
Вихідне значення з округленням |
Інструкції УЦС (Shifter) | |
Припустимі значення xop: |
SI, AR, MR0, MR1, MR2, SR0, SR1 |
[IF cond] |
SR =[SR OR] ASHIFT xop |
(HI) |
; |
Арифметичний зсув | |||||||
|
(LO) |
| |||||||||
| |||||||||||
[IF cond] |
SR = [SR OR] LSHIFT xop |
(HI) |
; |
Логічний зсув | |||||||
|
(LO) |
| |||||||||
| |||||||||||
[IF cond] |
SR = [SR OR] LSHIFT xop |
(HI) |
; |
Нормалізація | |||||||
|
(LO) |
| |||||||||
| |||||||||||
[IF cond] |
SE = EXP xop ; |
(HI) |
; |
Одержання порядку (експонента) | |||||||
|
(LO) |
| |||||||||
|
(HIX) |
| |||||||||
| |||||||||||
[IF cond] |
SB = EXPADJ xop ; |
Вирівнювання порядку в блоці | |||||||||
| |||||||||||
SR = [SR OR] ASHIFT xop BY<exp> |
(HI) |
; |
Безпосередній ASHIFT | ||||||||
|
(LO) |
| |||||||||
| |||||||||||
SR = [SR OR] LSHIFT xop BY<exp> |
(HI) |
; |
Безпосередній LSHIFT | ||||||||
|
(LO) |
| |||||||||
| |||||||||||
(HI) |
Зрушення відноситься до регістра SR1 (самі старші 16 розрядів) | ||||||||||
(LO) |
Зрушення відноситься до регістра SR0 (самі молодші 16 розрядів) | ||||||||||
(HIX) |
HI extend (біт переповнення AV зчитується детектором порядку) |
Команди пересилання даних
reg = reg ; |
Запис у регістр із регістра | ||||||||||
| |||||||||||
reg |
= <data> ; |
Безпосередній запис у регістр | |||||||||
dreg |
= <data> ; | ||||||||||
| |||||||||||
dreg = DMOVLAY ; |
Читання з підгружаючого регістра | ||||||||||
| |||||||||||
DMOVLAY = dreg ; |
Запис у підгружаючий регістр | ||||||||||
| |||||||||||
reg = DM (<addr>) ; |
Безпосереднє читання з пам'яті даних | ||||||||||
| |||||||||||
dreg = IO (<addr>) ; |
Безпосереднє читання порту введення/виводу | ||||||||||
| |||||||||||
dreg = DM ( |
I0 |
, |
M0 |
); |
Читання з пам'яті даних (непряма адресація) | ||||||
|
I1 |
|
M1 |
| |||||||
|
I2 |
|
M2 |
| |||||||
|
I3 |
|
M3 |
| |||||||
|
|
| |||||||||
|
I4 |
|
M4 |
| |||||||
|
I5 |
|
M5 |
| |||||||
|
I6 |
|
M6 |
| |||||||
|
I7 |
|
M7 |
| |||||||
| |||||||||||
dreg = PM( |
I4 |
, |
M4 |
); |
Читання з пам'яті програм (непряма адресація) | ||||||
|
I5 |
|
M5 |
| |||||||
|
I6 |
|
M6 |
| |||||||
|
I7 |
|
M7 |
| |||||||
| |||||||||||
DM( <addr> ) = reg ; |
Безпосередній запис у порт введення/висновку | ||||||||||
| |||||||||||
DM ( |
I0 |
, |
M0 |
)= dreg ; |
Запис у пам'ять даних (непряма адресація) | ||||||
|
I1 |
|
M1 |
| |||||||
|
I2 |
|
M2 |
| |||||||
|
I3 |
|
M3 |
| |||||||
|
|
| |||||||||
|
I4 |
|
M4 |
| |||||||
|
I5 |
|
M5 |
| |||||||
|
I6 |
|
M6 |
| |||||||
|
I7 |
|
M7 |
| |||||||
| |||||||||||
PM ( |
I4 |
, |
M4 |
)= dreg ; |
Запис у пам'ять програм (непряма адресація) | ||||||
|
I5 |
|
M5 |
| |||||||
|
I6 |
|
M6 |
| |||||||
|
I7 |
|
M7 |
| |||||||
| |||||||||||
<addr> |
Адреса (значення від 0 до 2048) |
Багатофункціональні інструкції
Обчислення і запис з регістра в регістр
<ALU> |
,dreg = dreg ; |
| |||||||||||||||||||||||||||||||||||||
<MAC> |
|
| |||||||||||||||||||||||||||||||||||||
<SHIFT> |
|
| |||||||||||||||||||||||||||||||||||||
Обчислення і читання пам'яті |
| ||||||||||||||||||||||||||||||||||||||
<ALU> |
,dreg=DM |
( |
I0 |
, |
M0 |
) |
; |
| |||||||||||||||||||||||||||||||
<MAC> |
|
|
I1 |
|
M1 |
|
| ||||||||||||||||||||||||||||||||
<SHIFT> |
|
|
I2 |
|
M2 |
|
| ||||||||||||||||||||||||||||||||
|
|
I3 |
|
M3 |
|
| |||||||||||||||||||||||||||||||||
|
|
|
|
| |||||||||||||||||||||||||||||||||||
|
|
I4 |
|
M4 |
|
| |||||||||||||||||||||||||||||||||
|
|
I5 |
|
M5 |
|
| |||||||||||||||||||||||||||||||||
|
|
I6 |
|
M6 |
|
| |||||||||||||||||||||||||||||||||
|
|
I7 |
|
M7 |
|
| |||||||||||||||||||||||||||||||||
Обчислення і запис у пам'ять |
| ||||||||||||||||||||||||||||||||||||||
DM |
( |
I0 |
, |
M0 |
) |
=dreg, |
<ALU> |
; |
| ||||||||||||||||||||||||||||||
|
|
I1 |
|
M1 |
|
|
<MAC> |
|
| ||||||||||||||||||||||||||||||
|
|
I2 |
|
M2 |
|
|
<SHIFT> |
|
| ||||||||||||||||||||||||||||||
|
|
I3 |
|
M3 |
|
|
| ||||||||||||||||||||||||||||||||
|
|
|
|
|
| ||||||||||||||||||||||||||||||||||
|
|
I4 |
|
M4 |
|
|
| ||||||||||||||||||||||||||||||||
|
|
I5 |
|
M5 |
|
|
| ||||||||||||||||||||||||||||||||
|
|
I6 |
|
M6 |
|
|
| ||||||||||||||||||||||||||||||||
|
|
I7 |
|
M7 |
|
|
| ||||||||||||||||||||||||||||||||
Одночасне читання пам'яті програм і пам'яті даних |
| ||||||||||||||||||||||||||||||||||||||
AX0 |
=DM( |
I0 |
, |
M0 |
), |
AY0 |
=PM( |
I4 |
, |
M4 |
); |
| |||||||||||||||||||||||||||
AX1 |
|
I1 |
|
M1 |
|
AY1 |
|
I5 |
|
M5 |
|
| |||||||||||||||||||||||||||
MX0 |
|
I2 |
|
M2 |
|
MY0 |
|
I6 |
|
M6 |
|
| |||||||||||||||||||||||||||
MX1 |
|
I3 |
|
M3 |
|
MY1 |
|
I7 |
|
M7 |
|
| |||||||||||||||||||||||||||
Одночасне обчислення і читання пам'яті | |||||||||||||||||||||||||||||||||||||||
<ALU> |
, |
AX0 |
=DM( |
I0 |
, |
M0 |
), |
AY0 |
=PM( |
I4 |
, |
M4 |
); | ||||||||||||||||||||||||||
<MAC> |
|
AX1 |
|
I1 |
|
M1 |
|
AY1 |
|
I5 |
|
M5 |
| ||||||||||||||||||||||||||
|
MX0 |
|
I2 |
|
M2 |
|
MY0 |
|
I6 |
|
M6 |
| |||||||||||||||||||||||||||
|
MX1 |
|
I3 |
|
M3 |
|
MY1 |
|
I7 |
|
M7 |
| |||||||||||||||||||||||||||
<ALU> |
Будь-яка інструкція АЛУ (крім DIVS, DIVQ) | ||||||||||||||||||||||||||||||||||||||
<MAC> |
Будь-яка інструкція множення / накопичення | ||||||||||||||||||||||||||||||||||||||
<SHIFT> |
Будь-яка інструкція УЦС (крім безпосереднього зрушення) | ||||||||||||||||||||||||||||||||||||||
Можуть використовуватися тільки регістри результату (AR і MR, а не AF і MF) |
Інструкції керування ходом програми
DO <addr> [UNTIL term] |
; Цикл DO-UNTIL | ||||||||||
| |||||||||||
[IF cond] JUMP |
(I4) |
; |
Перехід | ||||||||
|
(I5) |
| |||||||||
|
(I6) |
| |||||||||
|
(I7) |
| |||||||||
|
<addr> |
| |||||||||
| |||||||||||
[IF cond] CALL |
(I4) |
; |
Виклик підпрограми | ||||||||
|
(I5) |
| |||||||||
|
(I6) |
| |||||||||
|
(I7) |
| |||||||||
|
<addr> |
| |||||||||
| |||||||||||
IF |
FLAG_IN |
|
JUMP |
<addr> ; |
Перехід і виклик підпрограми в залежності від FLAG_IN | ||||||
|
NOT FLAG_IN |
|
CALL |
| |||||||
| |||||||||||
[IF cond] |
SET |
|
FLAG_OUT |
[, …]; |
Встановити логічний стан на висновку Flag Out | ||||||
|
RESET |
|
FL0 |
| |||||||
|
TOGGLE |
|
FL1 |
| |||||||
|
FL2 |
| |||||||||
| |||||||||||
[IF cond] RTS; |
Повернення з підпрограми | ||||||||||
| |||||||||||
[IF cond] RTI; |
Повернення з процедури обробки переривання | ||||||||||
| |||||||||||
IDLE [(n)]; |
Перехід у неактивний стан (n = 16, 32, 64, 128) |
Інші інструкції
NOP; |
Ні операції | |||||||||||||
| ||||||||||||||
MODIFY ( |
I0 |
, |
M0 |
); |
Модифікація адресного регістра | |||||||||
|
I1 |
|
M1 |
| ||||||||||
|
I2 |
|
M2 |
| ||||||||||
|
I3 |
|
M3 |
| ||||||||||
|
|
| ||||||||||||
|
I4 |
|
M4 |
| ||||||||||
|
I5 |
|
M5 |
| ||||||||||
|
I6 |
|
M6 |
| ||||||||||
|
I7 |
|
M7 |
| ||||||||||
| ||||||||||||||
[ |
PUSH |
STS] [,POP CNTR] [,POP PCI] [,POP LOOP]; |
Керування стеком | |||||||||||
|
POP |
| ||||||||||||
| ||||||||||||||
ENA |
|
SEC_REG |
[, …]; |
Керування режимом | ||||||||||
DIS |
|
BIT_REV |
| |||||||||||
|
AV_LATCH |
|
| |||||||||||
|
AR_SAT |
| ||||||||||||
|
M_MODE |
| ||||||||||||
|
TIMER |
| ||||||||||||
|
G_MODE |
| ||||||||||||
|
INTS |
| ||||||||||||
| ||||||||||||||
IDLE; |
Процесор переходить у неактивний стан, а тактові імпульси генеруються рідше в n раз (n = 16, 32, 64, 128) | |||||||||||||
IDLE (n); | ||||||||||||||
| ||||||||||||||
0 |
SEC_REG |
Альтернативний набір регістрів | ||||||||||||
1 |
BIT_REV |
Для адресації DAG1 використовує зворотний порядок бітів | ||||||||||||
2 |
AV_LATCH |
Контроль прапора переповнення AV | ||||||||||||
3 |
AR_SAT |
Насичення регістра AR | ||||||||||||
4 |
M_MODE |
Режим розміщення результату УН (MAC) | ||||||||||||
5 |
TIMER |
Використовувати таймер | ||||||||||||
6 |
G_MODE |
Включення режиму Go | ||||||||||||
7 |
INTS |
Використовувати переривання |