Команды логических операций
Синтаксис ассемблера | Разрядность | Операции | Адресация |
AND <EA>, Dn
|
B, W, L | Dn ^ <src> -> Dn | (1, 3 - 14), 1 |
AND Dn, <EA> | B, W, L | <dst> ^ Dn -> <dst> | 1, (1,3 - 9,13) |
ANDI # Im, <EA> | B, W, L | <dst> ^ Im -> <dst> | 12, (1, 3 - 9,13) |
ANDI # Im, CCR | W | CCR ^ Im -> CCR | 12, - |
ANDI # Im, SR | W | SR ^ Im -> SR | 12, - |
OR <EA>, Dn | B, W, L | Dn <src> -> Dn | (1, 3 - 14), 1 |
OR Dn, <EA> | B, W, L | <dst> Dn -> <dst> | 1, (1,3 - 9,13) |
ORI # Im, <EA> | B, W, L | <dst> Im -> <dst> | 12, (1, 3 - 9,13) |
ORI # Im, CCR | W | CCR Im -> CCR | 12, - |
ORI # Im, SR | W | SR Im -> SR | 12, - |
EOR Dn, <EA> | B, W, L | <dst> + Dn -> <dst> | 1, (1, 3 - 9,13) |
EORI # Im, <EA> | B, W, L | dst> + Im -> <dst> | 12, (1, 3 - 9,13) |
EORI # Im, CCR | W | CCR + Im -> CCR | 12, - |
EORI # Im, SR | W | SR + Im -> SR | 12, - |
NOT | B, W, L | <dst> -> <dst> | (1, 3 - 9.13) |
Таблица3 - Команды сдвигов
Синтаксис ассемблера | Разрядность | Адресация |
ASL Dx, Dv | B, W, L | 1, 1 |
ASL # Ns, Dv | B, W, L | 12, 1 |
ASL <EA> | W | (3 - 9,13) |
ASR Dx, Dv | B, W, L | 1,1 |
ASR # Ns, Dv | B, W, L | 12,1 |
ASR <EA> | W | (3 - 9,13) |
LSL Dx, Dv | B, W, L | 1,1 |
LSL # Ns, Dv | B, W, L | 12,1 |
LSL <lEA> | W | (3 - 9,13) |
LSR Dx, Dv | B, W, L | 1,1 |
LSR # Ns, Dv | B, W, L | 12,1 |
LSR <lEA> | W | (3 - 9,13) |
ROL Dx, Dv | B, W, L | 1,1 |
ROL # Ns, Dv | B, W, L | 12,1 |
ROL <EA> | W | (3 - 9,13) |
ROR Dx, Dv | B, W, L | 1,1 |
ROR # Ns, Dv | B, W, L | 12,1 |
ROR <EA> | W | (3 - 9,13) |
ROXL Dx, Dv | B, W, L | 1,1 |
ROXL # Ns, Dv | B, W, L | 12,1 |
ROXL <EA> | W | (3 - 9,13) |
ROXR Dx, Dv | B, W, L | 1,1 |
ROXR # Ns, Dv | B, W, L | 12,1 |
ROXR <EA> | W | (3 - 9,13) |
Таблица4 - Команды сравнения и тестирования.
Синтаксис ассемблера |
Разрядность |
Операции |
Адресация |
СMP <EA>, Dn |
B, W, L |
Dn - <src> |
(1 - 14), 1 |
СMP <EA>, An |
W, L |
An - <src> |
(1 - 14), 2 |
CMPI # Im, <EA> |
B, W, L |
<dst> - Im |
12, (1, 3 - 11,13,14) |
CMPM (Av) +,(Ax) + |
B, W, L |
<dst> - <src> |
4,4 |
CMP2 <EA>, Rn |
B, W, L |
(Rn)<LB, (Rn)>UB |
(3,6-11,13,14), (1,2) |
TST <EA> |
B, W, L |
<dst> - 0 |
(1, 3 – 9,13) |
TAS <EA> |
B |
<dst> - 0, 1 -> b7 |
(1, 3 - 14) |
Таблица 5 - Команды битовых операций.
Синтаксис ассемблера |
Разрядность |
Операции |
Адресация |
BTST Dn, <EA> |
B, L |
bn -> Z |
1, (1, 3 - 14) |
BTST # Nb, <EA> |
B, L |
bn -> Z |
12, (1, 3 - 14) |
BSET Dn, <EA> |
B, L |
bn -> Z, 1 -> bn |
1, (1, 3 - 9,13,14) |
BSET # Nb, <EA> |
B, L |
bn -> Z, 1 -> bn |
12, (1, 3 - 9,13,14) |
BCLR Dn, <EA> |
B, L |
bn -> Z, 0 -> bn |
1, (1, 3 - 9,13,14) |
BCLR # Nb, <EA> |
B, L |
bn -> Z, 0 -> bn |
12, (1, 3 - 9,13,14) |
BCHG Dn, <EA> |
B, L |
bn -> Z, bn -> bn |
1, (1, 3 - 9,13,14) |
BCHG # Nb, <EA> |
B, L |
bn -> Z, bn -> bn |
12, (1, 3 - 9,13,14) |
Таблица 6 - Команды управления и установки байтов.
Синтаксис ассемблера |
Операции |
Адресация |
JMP <EA> |
<dst> -> PC |
(3, 6 - 11,13,14) |
JSR <EA> |
SP - 4 -> SP, PC -> (SP), <dst> -> PC |
(3, 6 - 11,13,14) |
RTS |
(SP) -> PC, SP + 4 -> SP |
|
RTR |
(SP) -> CCR, SP + Z -> SP, (SP) -> PC, SP + 4 -> SP |
|
Scc <EA> |
Если (сс) выполняется, то 1 ... 1 -> <dst>, если (сс) не выполняется, то 0 ... 0 -> <dst> |
(1, 3 - 9,13,14) |
Таблица 7 - Изменение признаков после выполнения команд
Команды |
X |
N |
Z |
V |
C |
Примечание |
ABCD, SBCD, NBCD |
+ |
? |
* |
? |
+ |
X=С - десятичный перенос |
ADD, ADDI, ADDQ, SUB, SUBI, SUBQ, NEG |
+ |
+ |
+ |
+ |
+ |
X=С - десятичный перенос |
ADDX, SUBX, NEGX |
+ |
+ |
* |
+ |
+ |
X=С - десятичный перенос |
MULS, MULU, DIVS, DIVU |
- |
+ |
+ |
+ |
0 |
|
MOVE, MOVEQ, AND, ANDI, OR, ORI, EOR, EORI, NOT, CLR, EXT, TAS, TST |
- |
+ |
+ |
0 |
0 |
|
CMP, CMPI, CMPM |
- |
+ |
+ |
+ |
+ |
|
CMP2 |
- |
? |
+ |
? |
+ |
|
BTST, BSET, BCLR, BCHG |
- |
- |
+ |
- |
- |
Z = bn (инверсия) |
ASL, ASR |
+ |
+ |
- |
+ |
+ |
V = 1 при изменении знака |
LSL, LSR |
+ |
+ |
+ |
0 |
+ |
|
ROL, ROR |
- |
+ |
+ |
0 |
+ |
|
ROXL, ROXR |
+ |
+ |
+ |
0 |
+ |
|
CHK |
+ |
+ |
+ |
+ |
+ |
|
MOVE, ANDI, ORI, EORI to CCR или SR |
+ |
+ |
+ |
+ |
+ |
В общем виде запись типовой двухадресной команды на языке ассемблера имеет следующий вид:
COP.x <src>, <dst>