ЭУМК по дисциплине "Проектирование проблемно-ориентированных вычислительных средств" › Практика › Практическое занятие "Группа команд работы с аккумулятором"

# Электронный учебно-методический
комплекс по дисциплине
"Проектирование проблемно-ориентированных вычислительных средств"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

3. Команды переходов, ввода-вывода и управления.
1) Подгруппа команд перехода из группы команд управления ходом выполнения программы

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
B[D] pmad ( [d]goto pmad ) | PC = pmad(15–0) | 2 | 4 2¶ |  |
BACC[D] src ( [d]goto src ) | PC = src(15–0) | 1 | 6 4¶ |  |
BANZ[D] pmad, Sind ( if(Sind!=0) [d]goto pmad ) | Если (Sind¹0) то PC = pmad(15–0) | 2 | 4‡ 2§ 2¶ |  |
BC[D] pmad,cond[,cond[,cond]] ( if (cond(s)) [d]goto pmad ) | Если условия (cond(s)) выполняются, то PC = pmad(15–0) | 2 | 5‡ 3§ 3¶ | cond | OV↓ (cond=OV)
FB[D] extpmad ( far [d]goto extpmad ) | PC = extpmad(15–0), XPC = extpmad(19–16) | 2 | 4 2¶ |  |
FBACC[D] src ( far [d]goto src ) | PC = src(15–0), XPC = src(19–16) | 1 | 6 4¶ |  |

Время выполнения команд условного перехода зависит от того, выполняется условие или нет и отмечено соответствующими символами: ‡ - условие истинно и § - условие ложно.
Практически все команды переходов имеют формат с задержанным переходом, который обозначается добавлением буквы D к мнемонике команды. Время выполнения команд с задержанным переходом отмечено символом ¶.
При выполнении команд с задержанным переходом до перехода на новый адрес успевают выполниться команды из двух слов памяти, следующих непосредственно за командой задержанного перехода. Таким образом, до выполнения перехода выполняется одна двухсловная команда или две однословные команды, которые записаны после команды перехода.

2) Условия переходов для команд условных переходов, вызова подпрограмм и выполнения команд

Условие | Гр. | Описания | Код условия | Условие | Гр. | Описания | Код условия
BIO † | 2C | /BIO низкий | 0000 0011 | NBIO † | 2C | /BIO высокий | 0000 0010
C † | 2B | C = 1 | 0000 1100 | NC † | 2B | C = 0 | 0000 1000
TC † | 2A | TC = 1 | 0011 0100 | NTC † | 2A | TC = 0 | 0010 0000
AEQ | 1A | (A) = 0 | 0100 0101 | BEQ | 1A | (B) = 0 | 0100 1101
ANEQ | 1A | (A) <> 0 | 0100 0100 | BNEQ | 1A | (B) <> 0 | 0100 1100
AGT | 1A | (A) > 0 | 0100 0110 | BGT | 1A | (B) > 0 | 0100 1110
AGEQ | 1A | (A) => 0 | 0100 0010 | BGEQ | 1A | (B) => 0 | 0100 1010
ALT | 1A | (A) < 0 | 0100 0011 | BLT | 1A | (B) < 0 | 0100 1011
ALEQ | 1A | (A) <= 0 | 0100 0011 | BLEQ | 1A | (B) <= 0 | 0100 1111
AOV † | 1B | Переполн. A | 0111 0000 | BOV † | 1B | Переполн. B | 0111 1000
ANOV † | 1B | Нет переп.A | 0110 0000 | BNOV † | 1B | Нет переп.B | 0110 1000
UNC † |  | Безусловный | 0000 0000 |  |  |  |

Примечание: † Данные условия нельзя использовать в командах условного сохранения.
В команде может быть два условия перехода из группы 1 (А и В) или три условия перехода из группы 2 (А, В и С), которые объединяются по И. При этом проверять можно только один аккумулятор, а не два разных.

3) Подгруппа других команд управления программой

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
IDLE K | idle(K) | 1 | 4 | INTM |
MAR Smem ( mar(Smem) ) MAR 0 - код 6D00 | Если CMPT = 0, модифицируется ARx Если CMPT = 1 и ARx <> AR0, модифицируется ARx, ARP = x Если CMPT = 1 и ARx = AR0, модифицируется AR(ARP) | 1 | 1 | CMPT |
NOP - код F495 | Нет операции | 1 | 1 |  |
RESET | Программный сброс | 1 | 3 |  | Все
RSBX N, SBIT ( SBIT = 0 ) | STN (SBIT) = 0 ( ST(N,SBIT) = 0 ) | 1 | 1 |  | Заданный↓
SSBX N, SBIT ( SBIT = 1 ) | STN (SBIT) = 1 ( ST(N,SBIT) = 1 ) | 1 | 1 |  | Заданный↑
XC n, cond [, cond[, cond]] ( if (cond(s)) execute(n) ) | Если (cond(s)) выполняются команды из следующих n слов; n = 1 or 2 | 1 | 1 | cond | OV↓ (cond=OV)

В команде XC если n=1 – будет выполняться одна команда длиной 1 слово, если n=2 – одна команда длиной 2 слова или две команды длиной 1 слово. Транслятор контролирует длину команд и выдает предупреждение об ошибке. Исключением является n=2 и длина команды 3 слова. В этом случае нет предупреждения об ошибке, а при не выполнении условия счетчик команд РС устанавливается на третье слово команды.

4) Подгруппа команд условного сохранения из группы команд пересылки данных

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
CMPS src, Smem ( cmps(src, Smem) ) | Если src(31–16) > src(15–0) то Smem = src(31–16) TRN<<1 TC=0 иначе Smem = src(15–0) TRN<<1+1 TC=1 | 1 | 1 |  | TC
SACCD src, Xmem, cond | Если (cond) Xmem = hi(src) << ASM | 1 | 1 | SXM, cond |
SRCCD Xmem, cond | Если (cond) Xmem = BRC | 1 | 1 | cond |
STRCD Xmem, cond | Если (cond) Xmem = T | 1 | 1 | cond |

5) Команды работы с параллельными портами из подгруппы команд передачи данных группы команд пересылки данных

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
PORTR PA, Smem | Smem = port(PA) | 2 | 2 |  |
PORTW Smem, PA | port(PA) = Smem | 2 | 2 |  |

6) Подгруппа команд сравнения из группы логических операций

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
BIT Xmem, BITC ( TC = bit (Xmem, bitc) ) | TC = Xmem(15 – BITC) | 1 | 1 | TC |
BITF Smem, #lk ( TC = bitf (Smem, #lk) ) | TC = (Smem & #lk) | 2 | 2 | TC |
BITT Smem ( TC = bitt(Smem) ) | TC = Smem(15 – T(3–0)) | 1 | 1 | TC |
CMPM Smem, #lk | TC = (Smem == #lk) | 2 | 2 | TC |
CMPR CC, ARx (TC=(AR0 ? ARx)) CC = EQ, LT, GT, NEQ; ? = ==, >, <, != | Сравнивает ARx с AR0 TC = 1 если условие выполняется, иначе TC = 0 | 1 | 1 | TC |

В командах проверки (тестирования) битов принята обратная нумерация: 0-й бит - крайний левый (старший), а не правый (младший).

Оглавление | Программа | Теория| Практика | Контроль знаний | Об авторах
© БГУИР , 2012