
3. Команды арифметической обработки
Мнемоника |
Спос адр. |
Содержание |
Флаги SXHINZVC |
Цк |
Бт |
Примечание |
ABA |
INH |
(A) <- (A)+(B) |
--+-++++ |
2 |
1 |
Add B A |
ABX |
INH |
(X) <- (X)+(B) |
-------- |
3 |
1 |
Add B X |
ABY |
INH |
(Y) <- (Y)+(B) |
-------- |
4 |
2 |
Add B Y |
ADDA aop |
* |
(A) <- (A)+(aop) |
--+-++++ |
* |
* |
ADD A |
ADDB aop |
* |
(B) <- (B)+(aop) |
--+-++++ |
* |
* |
ADD B |
ADDD aop |
* |
(D) <- (D)+(aop):(aop+1) |
----++++ |
* |
* |
ADD D |
ADCA aop |
* |
(A) <- (A)+(aop)+(C) |
--+-++++ |
* |
* |
ADD, Carry |
ADCB aop |
* |
(B) <- (B)+(aop)+(C) |
--+-++++ |
* |
* |
ADD, Carry |
SBA |
INH |
(A) <- (A)-(B) |
--+-++++ |
2 |
1 |
Subtract |
SUBA aop |
* |
(A) <- (A)-(aop) |
----++++ |
* |
* |
SUBtract A |
SUBB aop |
* |
(B) <- (B)-(aop) |
----++++ |
* |
* |
SUBtract B |
SUBD aop |
* |
(D) <- (D)-(aop):(aop+1) |
----++++ |
* |
* |
SUBtract D |
SBCA aop |
* |
(A) <- (A)-(aop)-(C) |
----++++ |
* |
* |
SUB C A |
SBCB aop |
* |
(B) <- (B)-(aop)-(C) |
----++++ |
* |
* |
SUB C B |
CMPA aop |
* |
(A)-(aop) |
----++++ |
* |
* |
CoMPare A |
CMPB aop |
* |
(B)-(aop) |
----++++ |
* |
* |
CoMPare A |
CPX aop |
* |
(X)-(aop) |
----++++ |
* |
* |
ComPare X |
CPY aop |
* |
(Y)-(aop) |
----++++ |
* |
* |
ComPare Y |
CPD aop |
* |
(D)-(aop):(aop+1) |
----++++ |
* |
* |
ComPare D |
TSTA |
INH |
(A)-0 |
----++00 |
2 |
1 |
TeST for |
TSTB |
INH |
(B)-0 |
----++00 |
2 |
1 |
negative |
TST ad16 |
EXT |
(ad8)-0 |
----++00 |
6 |
3 |
or zero |
TST of8,X |
IX |
(of8+(X))-0 |
----++00 |
6 |
2 |
|
TST of8,Y |
IY |
(of8+(Y))-0 |
----++00 |
7 |
3 |
|
INCA |
INH |
(A) <- (A)+1 |
----+++- |
2 |
1 |
INCrement A |
INCB |
INH |
(B) <- (B)+1 |
----+++- |
2 |
1 |
INCrement B |
INX |
INH |
(X) <- (X)+1 |
-----+-- |
3 |
1 |
INcrement X |
INY |
INH |
(Y) <- (Y)+1 |
-----+-- |
4 |
1 |
INcrement Y |
INS |
INH |
(SP) <- (SP)+1 |
-------- |
3 |
2 |
IncrementSP |
INC ad16 |
EXT |
(ad16) <- (ad16)+1 |
----+++- |
6 |
3 |
|
INC of8,X |
IX |
(of8+(X)) <- (of8+(X))+1 |
----+++- |
6 |
2 |
|
INC of8,Y |
IY |
(of8+(Y)) <- (of8+(Y))+1 |
----+++- |
7 |
3 |
|
DECA |
INH |
(A) <- (A)-1 |
----+++- |
2 |
1 |
DECrement A |
DECB |
INH |
(B) <- (B)-1 |
----+++- |
2 |
1 |
DECrement X |
DEX |
INH |
(X) <- (X)-1 |
-----+-- |
3 |
1 |
DEcrement X |
DEY |
INH |
(Y) <- (Y)-1 |
-----+-- |
4 |
2 |
DEcrement Y |
DES |
INH |
(SP) <- (SP)-1 |
-------- |
3 |
1 |
DEcrementSP |
DEC ad16 |
EXT |
(ad8) <- (ad8)-1 |
----+++- |
6 |
3 |
|
DEC of8,X |
IX |
(of8+(X)) <- (of8+(X))-1 |
----+++- |
6 |
2 |
|
DEC of8,Y |
IY |
(of8+(Y)) <- (of8+(Y))-1 |
----+++- |
7 |
3 |
|
NEGA |
INH |
(A) <- -(A) |
----++++ |
2 |
1 |
NEGate A |
NEGB |
INH |
(B) <- -(B) |
----++++ |
2 |
1 |
NEGate B |
NEG ad16 |
EXT |
(ad16) <- -(ad16) |
----++++ |
6 |
3 |
Дополни- |
NEG of8,X |
IX8 |
(of8+(X)) <- -(of8+(X)) |
----++++ |
6 |
2 |
тельный код |
NEG of8,Y |
SP8 |
(of8+(Y)) <- -(of8+(Y)) |
----++++ |
7 |
3 |
|
MUL |
INH |
(D) <- (A)*(B) |
-------+ |
10 |
1 |
MULtiply Без знака |
IDIV |
INH |
(X) <- (D)/(X) Со знаком (D) <- (D)mod(X) |
-----+0+ |
41 |
1 |
DIVide Остаток |
FDIV |
INH |
(X) <- (D)/(X) Без знака (D) <- (D)mod(X) |
-----+++ |
41 |
1 |
DIVide Остаток |
DAA |
INH |
Двоично-десят.коррекция (A) |
----++++ |
2 |
1 |
Decimal Adjust Accum. |
Команды перехода
Мнемоника |
Спос адр. |
Содержание |
Флаги SXHINZVC |
Цк |
Бт |
Примечание |
Команды безусловного перехода | ||||||
JMP ad8 |
DIR |
(PC) <- ad8 |
-------- |
2 |
2 |
JuMP |
JMP ad16 |
EXT |
(PC) <- ad16 |
-------- |
3 |
3 |
|
JMP of8,X |
IX |
(PC) <- of8+(X) |
-------- |
3 |
2 |
|
JMP of8,Y |
IY |
(PC) <- of8+(Y) |
-------- |
4 |
3 |
|
BRA cad |
REL |
(PC)<-(PC)+rel |
-------- |
3 |
2 |
BRanch Always |
BRN cad |
IMM |
Переход к следующей команде |
-------- |
3 |
2 |
Branch Never |
NOP |
INH |
Переход к следующей команде |
-------- |
2 |
1 |
No OPeration |
Команды вызова подпрограмм и обслуживания прерываний | ||||||
BSR cad |
REL |
((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- (PC)+rel |
-------- |
6 |
2 |
Branch to SubRoutine |
JSR ad8 |
DIR |
((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- ad8 |
-------- |
5 |
2 |
JuMP To Subroutine |
JSR ad16 |
EXT |
((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- ad16 |
-------- |
6 |
3 |
|
JSR of8,X |
IX |
((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- of8+(X) |
-------- |
6 |
2 |
|
JSR of8,Y |
IY |
((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- of16+(Y) |
-------- |
7 |
3 |
|
SWI |
INH |
(PC)<-(PC)+1; ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; ((SP))<-(YL);(SP)<-(SP)-1; ((SP))<-(YH);(SP)<-(SP)-1; ((SP))<-(XL);(SP)<-(SP)-1; ((SP))<-(XH);(SP)<-(SP)-1; ((SP))<-(A);(SP)<-(SP)-1; ((SP))<-(B);(SP)<-(SP)-1; ((SP))<-(CCR);(SP)<-(SP)-1; (I)<-1 (Запрет прерываний) (PC)<-($FFF6):($FFF7) (вектор программного прерывания SWI) |
---1---- |
14 |
1 |
SoftWare Interrupt. Регистр H не запоминается для совместимости с HC05 |
RTI |
INH |
(SP)<-(SP)+1; (CCR)<-((SP)); (SP)<-(SP)+1; (B)<-((SP)); (SP)<-(SP)+1; (A)<-((SP)); (SP)<-(SP)+1; (XH)<-((SP)); (SP)<-(SP)+1; (XL)<-((SP)); (SP)<-(SP)+1; (YH)<-((SP)); (SP)<-(SP)+1; (YL)<-((SP)); (SP)<-(SP)+1; (PCH)<-((SP)); (SP)<-(SP)+1; (PCL)<-((SP)); (Разрешение прерываний) |
+¯++++++ |
12 |
1 |
ReTurn from Interrupt |
RTS |
INH |
(SP)<-(SP)+1; (PCH)<-((SP)); (SP)<-(SP)+1; (PCL)<-((SP)); |
-------- |
5 |
1 |
ReTurn from Subroutine |
Команды условных переходов по признакам | ||||||
BCC cad |
REL |
Если (C)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Carry Clear |
BCS cad |
REL |
Если (C)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Carry Set |
BEQ cad |
REL |
Если (Z)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Equal |
BNE cad |
REL |
Если (Z)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Not Equal |
BVC cad |
REL |
Если (V)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if oVerflow Clear |
BVS cad |
REL |
Если (V)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if oVerflow Set |
при сравнении чисел без знака | ||||||
BPL cad |
REL |
Если (Z)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Plus |
BMI cad |
REL |
Если (Z)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Minus |
BLO cad |
REL |
Если (C)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Lower |
BLS cad |
REL |
Если (C)|(Z)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Lower or Same (BCS) |
BHI cad |
REL |
Если (C)|(Z)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Higher |
BHS cad |
REL |
Если (C)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Higher or Same (BCC) |
при сравнении чисел со знаком | ||||||
BLT cad |
REL |
Если (N)Å(V)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Less Then |
BLE cad |
REL |
Если (Z)|(N)Å(V)=1, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Less Then or Equal |
BGT cad |
REL |
Если (Z)|(N)Å(V)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Greater Then |
BGE cad |
REL |
Если (N)Å(V)=0, (PC)<-(PC)+rel |
-------- |
3 |
2 |
Branch if Greater Then or Equal |
по значению битов | ||||||
BRCLR ad8,#d8,cad |
DIR REL |
Если (ad8)&d8=0, (PC)<-(PC)+rel |
-------- |
6 |
4 |
BRanch if bits CLeaR |
BRCLR of8,X, #d8,cad |
IX REL |
Если (of8+(X))&d8=0, (PC)<-(PC)+rel |
-------- |
7 |
4 |
Branch if bits CLeaR |
BRCLR of8,Y, #d8,cad |
IY REL |
Если (of8+(Y))&d8=0, (PC)<-(PC)+rel |
-------- |
8 |
5 |
BRanch if bits CLeaR |
BRSET ad8,#d8,cad |
DIR REL |
Если (ad8)&d8=1, (PC)<-(PC)+rel; |
-------- |
6 |
4 |
BRanch if bits Set |
BRSET of8,X, #d8,cad |
DIR REL |
Если (of8+(X))&d8=1, (PC)<-(PC)+rel; |
-------- |
7 |
4 |
BRanch if bits Set |
BRSET of8,Y, #d8,cad |
DIR REL |
Если (of8+(Y))&d8=1, (PC)<-(PC)+rel; |
-------- |
8 |
5 |
BRanch if bits Set |
Команды управления
Мнемоника |
Спос адр. |
Содержание |
Флаги SXHINZVC |
Цк |
Бт |
Примечание |
CLC |
INH |
(C) <- 0 |
-------0 |
2 |
1 |
CLear C |
SEC |
INH |
(C) <- 1 |
-------1 |
2 |
1 |
SEt C |
CLI |
INH |
(I) <- 0 - разрешение прерываний, один цикл дополнительная задержка в исполнении для выполнения следующей команды |
---0---- |
1+1 |
1 |
Clear I |
SEI |
INH |
(I) <- 1 - запрет прерываний |
---1---- |
1+1 |
1 |
SEt I |
CLV |
INH |
(C) <- 0 |
------0- |
2 |
1 |
CLear V |
SEV |
INH |
(C) <- 1 |
------1- |
2 |
1 |
SEt V |
WAIT |
INH |
(PC)<-(PC)+1; ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; ((SP))<-(YL);(SP)<-(SP)-1; ((SP))<-(YH);(SP)<-(SP)-1; ((SP))<-(XL);(SP)<-(SP)-1; ((SP))<-(XH);(SP)<-(SP)-1; ((SP))<-(A);(SP)<-(SP)-1; ((SP))<-(B);(SP)<-(SP)-1; ((SP))<-(CCR);(SP)<-(SP)-1; Останов процессора до прерывания. Периферийные блоки тактируются |
-------- |
* |
1 |
Сокращает мощность потребления |
STOP |
INH |
(I)
<- 0; Останов генератора тактов до
прихода внешнего сигнала |
-------- |
2 |
1 |
Сокращает мощность потребления |
TEST |
INH |
Счет шины адреса - только в режиме теста |
-------- |
* |
1 |
|