2002
піц
МИКРОКОНТРОЛЛЕРЫ
регистрам специальных функций, осу-
ществляется заданием соответствую-
щего прямого адреса, т.е. это коман-
ды обы чны х пересы лок, в которы х
вместо адреса можно ставить назва-
ние соответствующ его регистра. На-
пример, чтение PSW в аккумулятор
м ож ет бы ть в ы п о л н е н о ком анд ой
MOVA, PSW, которая преобразуется в
Ассемблером к виду MOV A, ODOh (Е5
DO), где Е5 - код операции, a DO - опе-
ранд (адрес PSW).
Кроме того, следует отметить, что
микро ЭВМ аккум улятор имеет два
различны х имени в зависим ости от
способа адресации: А - при неявной
адресации (например, MOV A, R0) и
АСС - при использовании прямого
адреса. Первый способ предпочти-
тельнее, однако. Не всегда применим.
Команды арифметических опе-
раций MCS-51
В данную группу входят 24 коман-
ды, краткое описание которы х приве-
дено в
табл.
3. Из нее следует, что
контроллер вы полняет достаточн о
широкий набор команд для организа-
ции обработки целочисленны х д а н -
ных, включая команды умножения и
деления.
В таблице также указаны тип ко-
манды (Т) в соответствии с таблицей,
ее длина в байтах (Б) и время выпол-
нения в машинных циклах (Ц).
По результату выполнения команд
ADD, ADDC, SUBB, MUL и DIV устанав-
ливаются флаги PSW, структура кото-
рых приведена в таблице.
Флаг С устанавливается при пере-
носе из разряда D7, т.е. в случае, если
результат не помещ ается в восемь
разрядов; флаг АС устанавливается
при переносе из разряда D3 в коман-
дах сложения и вычитания и служит
для д есятичной ариф м етики. Э тот
признак используется командой DAA.
Флаг OV устанавливается при пе-
реносе из разряда D6, т.е. в случае, если ре-
зультат не пом ещ ается в сем ь разрядов и
восьмой не может быть интерпретирован как
знаковый. Этот признак служит для организа-
ции обработки чисел со знаком.
Наконец, флаг Р устанавливается и сбрасы -
вается аппаратно. Если число единичных бит в
аккумуляторе нечетное, то Р =
1, в
противном
случае Р = 0.
Команды логических операций MCS-51
В этой группе 25 команд, их краткое описа-
ние приведено в
табл. 4.
Нетрудно увидеть, что эти ко-
манды позволяют выполнять операции над байтами: ло-
гическое И (л), логическое ИЛИ (v), исклю чаю щ ее ИЛИ
((+)), инверсию (NOT), сброс в нулевое значение и сдвиг.
В таблице также указаны тип команды (Т) в соответствии
с таблицей. Ее длина в байтах (Б) и время выполнения в
машинных циклах (Ц).
Табл. 3
Название команды
Мнемокод
КОП
T
Б
Ц
Операция
Сложение аккумулятора с регистром (п=0+7)
ADDA, Rn
0 0 10 1
rrr
1
1
(A) <- (A) + (Rn)
Сложение аккумулятора с прямоадресуемым байтом
ADDA, ad
0 0 1 0 0 1 0 1
3
2
1
(A) <- (A) + (ad)
Сложение аккумулятора с байтом из РПД (1 = 0,1)
ADDA, @Ri
0 0 1 0 0 1 1
t
1
1
1
(A) <- (A) + «Ri»
Сложение аккумулятора с константой
ADDA, #d
0 0 1 0 0 1 0 0
2
2
1
(A) <- (A) + #d
Сложение аккумулятора с регистром и переносом
ADDC A, Rn
0011ІГГГ
1
1
1
(A) <- (A) + (Rn) ♦ (C)
Сложение аккумулятора с прямоадресуемым байтом и
переносом
ADDC A, ad
0 0 1 1 0 1 0 1
3
2
1
(A) <- (A) + (ad) + (C)
Сложение аккумулятора с байтом из РПД и переносом
ADDC A, @Ri
0 0 1 1 0 1 1
І
1
1
1
(A)<-(A ) + ((R i»+(C )
Сложение аккумулятора с константой и переносом
ADDC A, #d
0 0 1 1 0 1 0 0
2
2
1
(A) <— (A) + #d + (C)
Десятичная коррекция аккумулятора
DAA
1 1 0 1 0 1 0 0
1
1
1
Если (Ao з)>9 или
((АС)=1),то(Ао зН-
(Ао з) +
6
, затем если
(A
4
7
) >9 или ((С)=1), то
(A
4
7
) <— (Ад
7
) +
6
Вычитание из аккумулятора регистра и заема
SUBB A, Rn
1 0 0 1 1
rrr
1
1
1
(А) <- (А) - (С) - (Rn)
Вычитание из аккумулятора прямоадресуемого байта и
заема
SUBB A, ad
1 0 0 1 0 1 0 1
3
2
1
(А) < - (A )-(C )-((ad))
Вычитание из аккумулятора байта РПД и заема
SUBB A, @Ri
1 0 0 1 0 1 1
i
1
1
1
(А) < -(A )-(C )-((Ri))
Вычитание из аккумулятора константы и заема
SUBB A, d
1 0 0 1 0 1 0 0
2
2
1
(А)<- (А) - (С) - #d
Инкремент аккумулятора
INCA
0 0 0 0 0 1 0 0
1
1
1
(А) <- (А) + 1
Инкремент регистра
INC Rn
0 0 0 0 1
rrr
1
1
1
(Rn) <— (Rn) + 1
Инкремент прямоадресуемого байта
INC ad
0 0 0 0 0 1 0 1
3
2
1
(ad) <- (ad) +
1
Инкремент байта в РПД
INC @Ri
0 0 0 0 0 1 1
і
1
1
1
«RO) <- «Ri» +
1
Инкремент указателя данных
INC DPTR
10100011
1
1
2
(DPTR
)<-(D P TR )+1
Декремент аккумулятора
DEC A
00010100 1
1
1
(А) <- (A) - 1
Декремент регистра
DEC Rn
00011 rrr
1
1
1
(Rn) <— (Rn) - 1
Декремент прямоадресуемого байта
DEC ad
00010101
3
2
1
(ad) <- (a d )- 1
Декремент байта в РПД
DEC @Ri
0001011r
1
1
1
«Ri» < - «Ri» -1
Умножение аккумулятора на регистр В
MUL AB
10100100 1
1
4
(B)(A) <- (A)'(B)
Деление аккумулятора на регистр В
DIV AB
10000100 1
1
4
(B).(A) <- (A)/(B)
Табл. 4
Название команды
Мнемокод
КОП
т
Б
Ц
Операция
Логическое И аккумулятора и регистра
ANL A, Rn
01011 rrr
1
1
1
(А) <— (A) AND (Rn)
Логическое И аккумулятора и прямоадресуемого байта
ANL A, ad
01010101
3
2
1
(А) -є- (A) AND (ad)
Логическое И аккумулятора и байта из РПД
ANL A, @Ri
0Ю1011І
1
1
1
(А) <.- (А) AND «Ri»
Логическое И аккумулятора и константы
ANL A. #d
01010100
2
2
1
(А)
(A) AND #d
Логическое И прямоадресуемого байта и аккумулятора
ANL ad, А
01010010
3
2
1
(ad) < - (ad) AND (A)
Логическое И прямоадресуемого байта и константы
ANL ad, #d
01010011
7
3
2
(ad) <~ (ad) AND #d
Логическое ИЛИ аккумулятора и регистра
ORL A, Rn
ОЮОІГГГ
1
1
1
(A) < - (A) OR (Rn)
Логическое ИЛИ аккумулятора и прямоадресуемого байта
ORL A, ad
01000101
3
2
1
(A) <— (A) OR (ad)
Логическое ИЛИ аккумулятора и байта из РПД
ORL A, @Ri
0100011 і
1
1
1
(A) <- (A) OR «Ri»
Логическое ИЛИ аккумулятора и константы
ORL A, #d
01000100
2
2
1
(A)
(A) OR #d
Логическое ИЛИ прямоадресуемого байта и аккумулятора
ORL ad. А
01000010
3
2
1
(ad) < - (ad) OR (A)
Логическое ИЛИ прямоадресуемого байта и константы
ORL ad. #d
01000011
7
3
2
(ad) <— (ad) OR #d
Исключающее ИЛИ аккумулятора и регистра
XRL A, Rn
01101ггг
1
1
1
(A) <— (A) XOR(Rn)
Исключающее ИЛИ аккумулятора и прямоадресуемого
байта
XRL A, ad
01100101
3
2
1
(A) <- (A) XOR (ad)
Исключающее ИЛИ аккумулятора и байта из РПД
XRL A, @Ri
0110011 і
1
1
1
(A) <_ (A) XOR ((Ri))
Исключающее ИЛИ аккумулятора и константы
XRL A, #d
01100100
2
2
1
(A) <- (A) XOR #d
Исключающее ИЛИ прямоадресуемого байта и
аккумулятора
XRL ad, А
01100010
3
2
1
(ad)
<r-
(ad) XOR (A)
Исключающее ИЛИ прямоадресуемого байта и константы
XRL ad, #d
01100011
7
3
2
(ad) <- (ad) XOR #d
Сброс аккумулятора
CLR А
11100100
1
1
1
(A) <- 0
Инверсия аккумулятора
CPL А
11110100
1
1
1
(A) <- NOT(A)
Сдвиг аккумулятора влево циклический
RL А
00100011
1
1
1
(An*,) <- (An), n=0*6.
(Ao) «- (A?)
Сдвиг аккумулятора влево через перенос
RLC А
00110011
1
1
1
(Ап-м) <— (An), n=0-6
(Ao) <- (С), (C) <—(A7)
Сдвиг аккумулятора вправо циклический
RR А
00000011
1
1
1
(An) <— (An*,), n=0-6,
(At) <- (Ao)
Сдвиг аккумулятора вправо через перенос
RRC А
0 0 0 1 0 0 1 1
1
1
1
(An) <— (Avh), n=0-6
(A7)«-(C ),(C )<-(A o)
Обмен местами тетрад в аккумуляторе
SWAP А
11000100
1
1
1
(Ao
3
)
(A
4
7
)
Табл. 5
Название команды
Мнемокод
КОП
T
Б
Ц
Операция
Сброс переноса
CLRC
11000011
1
1
1
(C><-0
Сброс бита
CLR bit
11000010
4
2
1
(b)< -0
Установка переноса
SETBC
11010011
1
1
1
(C><- 1
Установка бита
SETB bit
11010010
4
2
1
(b)<-1
Инверсия переноса
CPL С
10110011
1
1
1
(C) <- NOT(C)
Инверсия бита
CPL bit
10110010
4
2
1
(b) <- NOT(b)
Логическое И бита и переноса
ANL C, bit
10000010
4
2
2
(C )«-(C ) AND (b)
Логическое И инверсии бита и переноса
ANL C, /bit
10110000
4
2
2
(C )<-(C ) AND (NOT(b))
Логическое ИЛИ бита и переноса
ORL C, bit
01110010
4
2
2
(C) <- (C) QR (b)
Логическое ИЛИ инверсии бита и переноса
ORL C, /bit
10100000
4
2
2
(C) <—
(C) OR (NOT(b))
Пересылка бита в перенос
MOV C, bit
10100010
4
2
1
(C) <- (b)
Пересылка переноса в бит
MOV bit, C
10010010
4
2
2
(b )<- (C)
Команды операций над битами МСЭ-51
Группа состоит из 12 команд, краткое описание кото-
рых приведено в
табл. 5.
Эти команды позволяют выпол-
нять операции над отдельными битами: сброс, установку,
инверсию бита, а также логические И (л) и ИЛИ (V). В ка-
честве “логического" аккумулятора, участвующего во всех
операциях с двумя операндами, выступает признак пере-
10/2002
РЛ
предыдущая страница 28 Радиолюбитель 2002-10 читать онлайн следующая страница 30 Радиолюбитель 2002-10 читать онлайн Домой Выключить/включить текст