Алгоритм |
Пример |
|
|
|
|
(A[M]) (A[M+1]), где M=0-6 |
;(A)=85H, (C)=1 |
|
(A[7]) (A[0]) |
RR A |
|
|
|
RR A ;(A)=61H, (C)=1 |
|
|
|
RRC A |
|
|
|
0 0 0 1 0 0 1 1 |
|
|
|
|
Команда "сдвиг аккумулятора вправо через флаг переноса" сдвигает содержимое аккумулятора A на один бит вправо, причем содержимое бита 0
аккумулятора пересылается во флаг переноса C, а содержимое C - в бит 7
аккумулятора. Команда на состояние других флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
|
(A[M]) (A[M+1]), где M=0-6 |
;(A)=85H, (C)=0 |
(A[7]) (С), (С) (A[0]) |
RRC A ;(A)=42H, (C)=1 |
|
|
SETB C |
1 1 0 1 0 0 1 1 |
|
|
Команда "установить бит" устанавливает содержимое флага переноса C в "1".
Команда на состояние других флагов не влияет и имеет время выполнения 1
цикл.
Алгоритм |
|
|
|
Пример |
|
|
|
|
|
|
|
(C) 1 |
|
;(C)=0 |
|
|
|
|
|
SETB C ;(C)=1 |
|
|
|
|
|
|
|
|
|
SETB bit |
|
|
|
|
|
1 1 0 1 0 0 1 0 |
|
bit |
|||
|
|
|
|
|
|
Команда "установить бит" устанавливает в "1" содержимое бита, 8-разрядный адрес которого определяется символическим именем bit в области ячеек резидентной памяти данных или регистров специальных функций, 82
допускающей побитовое обращение. Команда имеет время выполнения 1 цикл и на состояние флагов не влияет, за исключением случая, когда флаг является операндом команды.
Алгоритм |
Пример |
|
|
(bit) 1 |
;(P2)=38H |
|
SETB P2.0 ;(P2)=39H |
|
|
SUBB A,Rn ;где n=0-7 |
1 0 0 1 1 r r r |
где rrrB=000B-111B. |
|
|
|
Команда "вычитание с заемом" вычитает содержимое заданного регистра Rn
выбранного банка вместе с содержимым флага переноса С из содержимого аккумулятора A, помещая результат в A. Содержимое используемого регистра не изменяется. При появлении заема в разрядах 7 и 3 аккумулятора устанавливаются в "1" флаг переноса C и флаг дополнительного переноса AC
соответственно, в противном случае эти флаги сбрасываются в "0".
Содержимое флага переполнения OV устанавливается, если есть заем в бите 6 и
нет заема в бите 7, или есть заем в бите 7 и нет - в бите 6, в противном случае флаг OV сбрасывается. Время выполнения команды 1 цикл.
|
Алгоритм |
|
Пример |
||
|
|
|
|
||
(A) (A)-(C)-(Rn), где n=0-7 |
|
;(A)=0C9H, (R2)=54H, (C)=1 |
|||
(С) x, |
(OV) =x, |
(AC) =x, |
где |
SUBB A,R2 ;(A)=74H,(R2)=54H, |
|
x {0,1} |
|
|
|
;(AC)=0, (C)=0, (OV)=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 0 0 1 0 1 1 i |
||
SUBB A,@Ri ;где i {0,1} |
|
|
|
||
Команда "вычитание с заемом" вычитает содержимое флага переноса С вместе с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка, из содержимого аккумулятора A, помещая результат в A. Содержимое используемой ячейки не изменяется. Логика установки (сброса) флагов и время выполнения такие же,
как у рассмотренной выше команды с аналогичной мнемоникой.
83
Алгоритм |
|
|
Пример |
||
|
|
|
|
|
|
(A) (A)-(C)-((Ri)), где i {0,1} |
|
;(A)=49H, (R0)=3AH, |
|||
(С) x, (OV) =x, (AC) =x, где x {0,1} |
;в РПД (3AH)=68H, (C)=1 |
||||
|
|
|
SUBB A,@R0 ;(A)=0E0H, |
||
|
|
|
;(AC)=0, (C)=1, (OV)=0 |
||
|
|
|
|
|
|
SUBB A,direct |
|
|
|
|
|
|
1 0 0 1 0 1 0 1 |
direct |
|||
|
|
|
|
|
|
Команда "вычитание с заемом" вычитает из содержимого аккумулятора A
содержимое флага переноса С вместе с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается в A. Содержимое используемой ячейки или используемого регистра не изменяется. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.
|
Алгоритм |
|
|
Пример |
||
|
|
|
|
|
|
|
(A) (A)-(C)-(direct) |
|
|
|
;(A)=97H, (C)=0, (B)=25H |
||
(С) x, |
(OV) =x, |
(AC) =x, |
где |
SUBB A,B ;(A)=72H, (B)=25H, |
||
x {0,1} |
|
|
|
|
;(AC)=0, (C)=0, (OV)=1 |
|
|
|
|
|
|
|
|
SUBB A,#data8 |
|
|
|
|
||
|
|
1 0 0 1 0 1 0 0 |
data8 |
|||
|
|
|
|
|
|
|
Команда "вычитание с заемом" вычитает содержимое флага переноса С вместе с байтом данных data8, непосредственно указанным в команде, из содержимого аккумулятора A, помещая результат в A. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.
Алгоритм |
Пример |
|
|
84
(A) (A)-(C)-data8 |
;(A)=0BEH, (C)=0 |
||
(С) x, (OV) =x, (AC) =x, где x {0,1} |
SUBB A,#3FH ;(A)=7FH, |
||
|
|
;(AC)=1, (C)=0, (OV)=1 |
|
|
|
|
|
SWAP A |
|
|
|
|
1 1 0 0 0 1 0 0 |
|
|
|
|
|
|
Команда "обмен тетрадой" осуществляет обмен содержимым младших четырех и старших четырех битов аккумулятора A. Команда на флаги не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
|
(A[3-0]) (A[7-4]) |
;(A)=49H |
(A[7-4]) (A[3-0]) |
SWAP A ;(A)=94H |
|
|
XCH A,Rn ;где n=0-7 |
1 1 0 0 1 r r r |
где rrrB=000B-111B. |
|
|
|
Команда "обмен байтом" выполняет обмен содержимого аккумулятора A с
содержимым заданного регистра Rn выбранного банка. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
|
(A) (Rn), где n=0-7 |
;(A)=0FAH, (R6)=93H |
(Rn) (A) |
XCH A,R6 ;(A)=93H, (R6)=0FAH |
|
|
XCH A,@Ri ;где i {0,1}
Команда "обмен байтом" выполняет обмен содержимого аккумулятора A с
содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
|
(A) ((Ri)), где i {0,1} |
;(A)=0FDH, (R1)=30H, |
((Ri)) (A) |
;в РПД (30H)=17H |
|
XCH A,@R1 ;(A)=17H, (R1)=30H, |
|
|
85
;в РПД (30H)=0FDH
XCH A,direct |
1 1 0 0 0 1 0 1 |
direct |
|
|
|
Команда "обмен байтом" выполняет обмен содержимого аккумулятора A с
содержимым ячейки, адрес которой определяется символическим именем direct
в области резидентной памяти данных или в среде регистров специальных функций. Команда на состояние флагов не влияет и имеет время выполнения 1
цикл.
Алгоритм |
Пример |
||
|
|
|
|
|
;(A)=24H, (DPL)=3DH |
||
(A) (direct) |
|
|
|
(direct) (A) |
XCH A,DPL ;(A)=3DH, |
||
|
|
;(DPL)=24H |
|
|
|
|
|
|
|
|
|
|
|
1 1 0 1 0 1 1 i |
|
XCHD A,@Ri ;где i {0,1} |
|
|
|
Команда "обмен тетрадой" выполняет обмен содержимого младшей тетрады
(биты 3-0) аккумулятора A с содержимым младшей тетрады ячейки резидентной памяти данных (РПД), при этом содержимое старших тетрад A и
используемой ячейки, адресуемой содержимым заданного регистра Ri
выбранного банка, не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
|
|
Пример |
||
|
|
|
|
|
|
(A[3-0]) ((Ri))[3-0], где i {0,1} |
|
;(A)=0FDH, (R1)=30H, |
|||
((Ri))[3-0] (A[3-0]) |
|
;в РПД (30H)=17H |
|||
|
|
|
XCHD A,@R1 ;в РПД (30H)=1DH, |
||
|
|
|
;(A)=0F7H, (R1)=30H |
||
|
|
|
|
|
|
XRL A,Rn ;где n=0-7 |
|
|
|
где rrrB=000B-111B. |
|
|
0 1 1 0 1 r r r |
|
|||
|
|
|
|
|
|
Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 содержимого аккумулятора A с содержимым заданного
86