Алгоритм

Пример

(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