
3. Команды битового процессора
Мнемоника |
Спос адр. |
Содержание |
Флаги VHINZC |
Цк |
Бт |
Примечание |
BCLR n,ad8 |
DIR |
(ad8).n <- 0 |
------ |
4 |
2 |
Bit CLiaR |
BSET n,ad8 |
DIR |
(ad8).n <- 1 |
------ |
4 |
2 |
Bit Set |
CLC |
INH |
(C) <- 0 |
-----0 |
1 |
1 |
CLear C |
SEC |
INH |
(C) <- 1 |
-----1 |
1 |
1 |
SEt C |
BRCLR n,ad8,cad |
DIR REL |
Если (ad8).n=0, то (PC)<-(PC)+rel;(C)<-(ad8).n |
-----+ |
5 |
3 |
Branch if bit CLeaR |
BRSET n,ad8,cad |
DIR REL |
Если (ad8).n=1, то (PC)<-(PC)+rel;(C)<-(ad8).n |
-----+ |
5 |
3 |
Branch if bit Set |
4. Команды арифметической обработки
Мнемоника |
Спос адр. |
Содержание |
Флаги VHINZC |
Цк |
Бт |
Примечание |
ADD aop |
* |
(A) <- (A)+(aop) |
++-+++ |
* |
* |
ADD |
ADC aop |
* |
(A) <- (A)+(aop)+(C) |
++-+++ |
* |
* |
ADD, Carry |
AIS #d8 |
IMM |
(SP) <- (SP)+d8 |
------ |
2 |
2 |
Со знаком |
AIX #d8 |
IMM |
(H:X) <- (H:X)+d8 |
------ |
2 |
2 |
Со знаком |
SUB aop |
* |
(A) <- (A)-(aop) |
+--+++ |
* |
* |
SUBtract |
SBC aop |
* |
(A) <- (A)-(aop)-(C) |
+--+++ |
* |
* |
SUBtract |
CMP aop |
* |
(A)-(aop) |
+--+++ |
* |
* |
CoMPare A |
CPX aop |
* |
(X)-(aop) |
+--+++ |
* |
* |
ComPare X |
TSTA |
INH |
(A)-0 |
0--++- |
1 |
1 |
TeST for |
TSTX |
INH |
(X)-0 |
0--++- |
1 |
1 |
negative |
TST ad8 |
DIR |
(ad8)-0 |
0--++- |
3 |
2 |
or zero |
TST ,X |
IX |
((H:X))-0 |
0--++- |
2 |
1 |
|
TST of8,X |
IX8 |
(of8+(H:X))-0 |
0--++- |
3 |
2 |
|
TST of8,SP |
SP8 |
(of8+(SP))-0 |
0--++- |
4 |
3 |
|
CPHX #d16 |
IMM |
(H:X)-d16 |
+--+++ |
* |
* |
CoMPare H:X |
CPHX ad8 |
DIR |
(H:X)-(ad8) |
+--+++ |
* |
* |
CoMPare H:X |
INCA |
INH |
(A) <- (A)+1 |
+--++- |
1 |
1 |
INCrement A |
INCX |
INH |
(X) <- (X)+1 |
+--++- |
1 |
1 |
INCrement X |
INC ad8 |
DIR |
(ad8) <- (ad8)+1 |
+--++- |
4 |
2 |
|
INC ,X |
IX |
((H:X)) <- ((H:X))+1 |
+--++- |
3 |
1 |
|
INC of8,X |
IX8 |
(of8+(H:X)) <- (of8+(H:X))+1 |
+--++- |
4 |
2 |
|
INC of8,SP |
SP8 |
(of8+(SP)) <- (of8+(SP))+1 |
+--++- |
5 |
3 |
|
DECA |
INH |
(A) <- (A)-1 |
+--++- |
1 |
1 |
DECrement A |
DECX |
INH |
(X) <- (X)-1 |
+--++- |
1 |
1 |
DECrement X |
DEC ad8 |
DIR |
(ad8) <- (ad8)-1 |
+--++- |
4 |
2 |
|
DEC ,X |
IX |
((H:X)) <- ((H:X))-1 |
+--++- |
3 |
1 |
|
DEC of8,X |
IX8 |
(of8+(H:X)) <-(of8+(H:X))-1 |
+--++- |
4 |
2 |
|
DEC of8,SP |
SP8 |
(of8+(SP)) <- (of8+(SP))-1 |
+--++- |
5 |
3 |
|
NEGA |
INH |
(A) <- -(A) |
+--++- |
1 |
1 |
NEGate A |
NEGX |
INH |
(X) <- -(X) |
+--++- |
1 |
1 |
NEGate X |
NEG ad8 |
DIR |
(ad8) <- -(ad8) |
+--++- |
4 |
2 |
Дополни- |
NEG ,X |
IX |
((H:X)) <- -((H:X)) |
+--++- |
3 |
1 |
тельный код |
NEG of8,X |
IX8 |
(of8+(H:X)) <- -(of8+(H:X)) |
+--++- |
4 |
2 |
|
NEG of8,SP |
SP8 |
(of8+(SP)) <- -(of8+(SP)) |
+--++- |
5 |
3 |
|
MUL |
INH |
(X:A) <- (X)*(A) |
-0---0 |
5 |
1 |
MULtiply Без знака |
DIV |
INH |
(A) <- (H:A)/(X) (H) <- (H:A)mod(X) |
----++ |
7 |
1 |
DIVide Остаток |
DAA |
INH |
Двоично-десят.коррекция (A) |
?--+++ |
2 |
1 |
Decimal Adjust Accum. |
Инкремент и декремент 16-разрядных регистров H:X и SP в целом может быть сделан с помощью команд AIX и AIS соответственно. Пример вычисления однобайтовой контрольной суммы таблицы из однобайтовых чисел приведен ниже.
TABLE: EQU $7000 ; Адрес начала таблицы
ORG $6E00
LDHX #511 ; Число элементов таблицы
CLRA ; Очистка А – контрольной суммы
ADDLOOP: ADD TABLE,X
AIX #$FF ; Уменьшить число элементов на 1
CPHX #0
BPL ADDLOOP