Алгоритм | Пример |
(bit):=1 | ;(P2)=38H SETB P2.0 ;(P2)=39H |
SJMP addr | 1 0 0 0 0 0 0 0 | rel |
Команда "короткий переход" выполняет безусловный переход по адресу addr, определяемому при помощи сложения 8-битового числа rel (со знаком), размещенного в младшем байте команды, с содержимым счетчика команд PC после увеличения его на 2. Таким образом, указанный переход возможен в пределах от -128 до +127 относительно начального адреса следующей команды, при этом отрицательное значение rel представляется двоичным числом в дополнительном коде. Команда на флаги не влияет и имеет время выполнения 2 цикла.
Алгоритм | Пример |
(PC):=(PC)+2+rel | ;MT4 соответствует адресу 104H, ;(PC)=165H, rel=9DH SJMP MT4 ;(PC)=104H |
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 (С):=x, (OV):=x, (AC):=x, где xÎ{0,1} | ;(A)=0C9H, (R2)=54H, (C)=1 SUBB A, R2 ;(A)=74H,(R2)=54H, ;(AC)=0, (C)=0, (OV)=1 |
SUBB A,@Ri ;где iÎ{0,1} | 1 0 0 1 0 1 1 i |
Команда "вычитание с заемом" вычитает содержимое флага переноса С вместе с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка, из содержимого аккумулятора A, помещая результат в A. Содержимое используемой ячейки не изменяется. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.
Алгоритм | Пример |
(A):=(A)-(C)-((Ri)), где iÎ{0,1} (С):=x, (OV):=x, (AC):=x, где xÎ{0,1} | ;(A)=49H, (R0)=3AH, ;в РПД (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) (С):=x, (OV):=x, (AC):=x, где xÎ{0,1} | ;(A)=97H, (C)=0, (B)=25H SUBB A, B ;(A)=72H, (B)=25H, ;(AC)=0, (C)=0, (OV)=1 |
SUBB A,#data8 | 1 0 0 1 0 1 0 0 | data8 |
Команда "вычитание с заемом" вычитает содержимое флага переноса С вместе с байтом данных data8, непосредственно указанным в команде, из содержимого аккумулятора A, помещая результат в A. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.
Алгоритм | Пример |
(A):=(A)-(C)-data8 (С):=x, (OV):=x, (AC):=x, где xÎ{0,1} | ;(A)=0BEH, (C)=0 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[7-4]):=(A[3-0]) | ;(A)=49H 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 (Rn):=(A) | ;(A)=0FAH, (R6)=93H XCH A, R6 ;(A)=93H, (R6)=0FAH |
XCH A,@Ri ;где iÎ{0,1} | 1 1 0 0 0 1 1 i |
Команда "обмен байтом" выполняет обмен содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A):=((Ri)), где iÎ{0,1} ((Ri)):=(A) | ;(A)=0FDH, (R1)=30H, ;в РПД (30H)=17H XCH A,@R1 ;(A)=17H, (R1)=30H, ;в РПД (30H)=0FDH |
XCH A, direct | 1 1 0 0 0 1 0 1 | direct |
Команда "обмен байтом" выполняет обмен содержимого аккумулятора A с содержимым ячейки, адрес которой определяется символическим именем direct в области резидентной памяти данных или в среде регистров специальных функций. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A):=(direct) (direct):=(A) | ;(A)=24H, (DPL)=3DH XCH A, DPL ;(A)=3DH, ;(DPL)=24H |
XCHD A,@Ri ;где iÎ{0,1} | 1 1 0 1 0 1 1 i |
Команда "обмен тетрадой" выполняет обмен содержимого младшей тетрады (биты 3-0) аккумулятора A с содержимым младшей тетрады ячейки резидентной памяти данных (РПД), при этом содержимое старших тетрад A и используемой ячейки, адресуемой содержимым заданного регистра Ri выбранного банка, не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A[3-0]):=((Ri))[3-0], где iÎ{0,1} ((Ri))[3-0]:=(A[3-0]) | ;(A)=0FDH, (R1)=30H, ;в РПД (30H)=17H XCHD A,@R1 ;в РПД (30H)=1DH, ;(A)=0F7H, (R1)=30H |
XRL A, Rn ;где n=0-7 | 0 1 1 0 1 r r r | где rrrB=000B-111B |
Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 содержимого аккумулятора A с содержимым заданного регистра Rn выбранного банка, помещая результат в A. При этом содержимое используемого регистра не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A):=(A)Å(Rn), где n=0-7 | ;(A)=0FH, (R4)=0F3H XRL A, R4 ;(A)=0FCH, (R4)=0F3H |
XRL A,@Ri ;где iÎ{0,1} | 0 1 1 0 0 1 1 i |
Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Результат размещается в A. Содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |


