Лабораторки / ЛР2
.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
СИСТЕМА КОМАНД МИКРОПРОЦЕССОРОВ СЕМЕЙСТВА INTEL
NCS-51
Отчет по лабораторной работе №2
по дисциплине «Организация ЭВМ и вычислительных систем»
Студенты гр.
6.11.2020
Приняла Доцент кафедры КИБЭВС
_______
6.11.2020
Томск 2020
2
1 Введение Цель работы: изучение принципов работы и системы команд
микропроцессора на примере микропроцессоров семейства Intel mcs-51.
Используя систему команд процессора 8051, составить алгоритм и написать программу циклического перебора значения от 0 до 100
включительно. Нечетные значения выводить в порт P0, четные в P1. Оценить период выполнения цикла. Проверить правильность работы программы на симуляторе (Вариант 4).
3
2 Ход работы
2.1. Основные теоретические сведения
Система команд МП MCS - 51 включает в себя 111 команд. Большинство команд выполняются за один или два машинных цикла «выборка-
исполнение», за исключением команд умножения и деления, которые выполняются за четыре машинных цикла. В качестве операндов команд микропроцессора могут использоваться биты, четырехбитные цифры (ниблы),
байты и двухбайтные слова.
По функциональным признакам команды разделяются на пять групп:
пересылки данных;
арифметических операций;
логических операций;
операций над битами;
управления аппаратно-программными средствами МП.
Как показано в таблице 1, по команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей используются команды M0VX и MOVC соответственно. Первая из них обеспечивает чтение/запись байта из внешней памяти данных, вторая - чтение байта из памяти программ.
Таблица 1 – команды пересылки
Название команды |
|
Мнемокод |
|
КОП |
Б |
Ц |
Операция |
|
Пересылка |
|
в |
MOV A, Rn |
|
1110.1rrr |
1 |
1 |
(A)<-(Rn) |
аккумулятор |
|
из |
|
|
|
|
|
|
регистра (n=0+7) |
|
|
|
|
|
|
|
|
Пересылка |
|
в |
MOV A, ad |
|
1110.0101 |
2 |
1 |
(A)<-(ad) |
аккумулятор |
прямо- |
|
|
|
|
|
|
|
адресуемого байта |
|
|
|
|
|
|
|
|
Пересылка |
|
в |
MOV A, @Ri |
1110.011i |
1 |
1 |
(A)<-((Ri)) |
|
аккумулятор |
байта |
из |
|
|
|
|
|
|
РПД (i=0,1) |
|
|
|
|
|
|
|
|
Загрузка в аккумулятор |
MOV |
A, |
0111.0100 |
2 |
1 |
(A)<-#data8 |
||
константы |
|
|
#data8 |
|
|
|
|
|
4
Пересылка в регистр из |
MOV Rn, A |
1111.1rrr |
1 |
1 |
(Rn)<-(A) |
||||||
аккумулятора |
|
|
|
|
|
|
|
|
|
||
Пересылка |
в |
|
регистр |
MOV Rn, ad |
1010.1rrr |
2 |
2 |
(Rn)<-(ad) |
|||
прямоадресуемого |
|
|
|
|
|
|
|
||||
байта |
|
|
|
|
|
|
|
|
|
|
|
Загрузка |
|
в |
|
регистр |
MOV |
Rn, |
0111.1rrr |
2 |
1 |
(Rn)<-#data8 |
|
константы |
|
|
|
|
#data8 |
|
|
|
|
|
|
Пересылка по прямому |
MOV ad, A |
1111.0101 |
2 |
1 |
(ad)<-(A) |
||||||
адресу аккумулятора |
|
|
|
|
|
|
|
||||
Пересылка по прямому |
MOV ad, Rn |
1000.1rrr |
2 |
2 |
(ad)<-(Rn) |
||||||
адресу регистра |
|
|
|
|
|
|
|
|
|||
Пересылка |
|
|
|
|
MOV add, ads |
1000.0101 |
3 |
2 |
(add)<-(ads) |
||
прямоадресуемого |
|
|
|
|
|
|
|
||||
байта |
по |
|
прямому |
|
|
|
|
|
|
||
адресу |
|
|
|
|
|
|
|
|
|
|
|
Пересылка |
байта |
из |
MOV ad, @Ri |
1000.011i |
2 |
2 |
(ad)<-((Ri)) |
||||
РПД по прямому адресу |
|
|
|
|
|
|
|||||
Пересылка по прямому |
MOV |
ad, |
0111.0101 |
3 |
2 |
(ad)<-#data8 |
|||||
адресу константы |
|
#data8 |
|
|
|
|
|
||||
Пересылка |
в |
РПД |
из |
MOV @Ri, A |
1111.011i |
1 |
1 |
((Ri))<-(A) |
|||
аккумулятора |
|
|
|
|
|
|
|
|
|
||
Пересылка |
|
в |
РПД |
MOV @Ri, ad |
0110.011i |
2 |
2 |
((Ri))<-(ad) |
|||
прямоадресуемого |
|
|
|
|
|
|
|
||||
байта |
|
|
|
|
|
|
|
|
|
|
|
Пересылка |
|
в |
РПД |
MOV |
@Ri, |
0111.011i |
2 |
1 |
((Ri))<-#data8 |
||
константы |
|
|
|
|
#data8 |
|
|
|
|
|
|
Загрузка |
|
|
указателя |
MOV DPTR, |
1001.0000 |
3 |
2 |
(DPTR)<- |
|||
данных |
|
|
|
|
|
#data16 |
|
|
|
|
#data16 |
Пересылка |
|
|
|
в |
MOVC |
A, |
1001.0011 |
1 |
2 |
A<-((A) |
|
аккумулятор |
байта |
из |
@A+DPTR |
|
|
|
+(DPTR)) |
||||
ПП |
|
|
|
|
|
|
|
|
|
|
|
Пересылка |
|
|
|
в |
MOVC |
A, |
1000.0011 |
1 |
2 |
(PC)<-(PC)+1, |
|
аккумулятор |
байта |
из |
@A+PC |
|
|
|
|
(A)<- |
|||
ПП |
|
|
|
|
|
|
|
|
|
|
((A)+(PC)) |
Пересылка |
|
|
|
в |
MOVX |
A, |
1110.001i |
1 |
2 |
(A)<-((Ri)) |
|
аккумулятор |
байта |
из |
@Ri |
|
|
|
|
|
|||
памяти данных |
|
|
|
|
|
|
|
|
|||
Пересылка |
|
|
|
в |
MOVXA, |
1110.0000 |
1 |
2 |
(A)<- |
||
аккумулятор |
байта |
из |
@DPTR |
|
|
|
|
((DPTR)) |
|||
расширенной |
|
памяти |
|
|
|
|
|
|
|||
данных |
|
|
|
|
|
|
|
|
|
|
|
Пересылка |
в |
память |
MOVX |
@Ri, |
1111.001i |
1 |
2 |
((Ri))<-(A) |
|||
данных |
значение |
из |
A |
|
|
|
|
|
|||
аккумулятора |
|
|
|
|
|
|
|
|
|
5
Пересылка |
|
в |
MOVX |
|
1111.0000 |
1 |
2 |
((DPTR))<-(A) |
|
расширенную |
память |
@DPTR, A |
|
|
|
|
|
||
данных |
значение |
из |
|
|
|
|
|
|
|
аккумулятора |
|
|
|
|
|
|
|
|
|
Загрузка в стек |
|
|
PUSH ad |
|
1100.0000 |
2 |
2 |
(SP)<-(SP) + 1, |
|
|
|
|
|
|
|
|
|
|
((SP))<-(ad) |
Извлечение из стека |
|
POP ad |
|
1101.0000 |
2 |
2 |
(ad)<-(SP), |
||
|
|
|
|
|
|
|
|
|
(SP)<-(SP) – 1 |
Обмен |
аккумулятора |
с |
XCH A, Rn |
|
1100.1rrr |
1 |
1 |
(A)<->(Rn) |
|
регистром |
|
|
|
|
|
|
|
|
|
Обмен |
аккумулятора |
с |
XCH A, ad |
|
1100.0101 |
2 |
1 |
(A)<->(ad) |
|
прямоадресуемым |
|
|
|
|
|
|
|
||
байтом |
|
|
|
|
|
|
|
|
|
Обмен |
аккумулятора |
с |
XCH A, @Ri |
1100.011i |
1 |
1 |
(A)<->((Ri)) |
||
байтом |
из |
памяти |
|
|
|
|
|
|
|
данных |
|
|
|
|
|
|
|
|
|
Обмен младших тетрад |
XCHD |
A, |
1101.011i |
1 |
1 |
(A0…A3)<- |
|||
аккумулятора и памяти |
@Ri |
|
|
|
|
>W(Ri0…Ri3) |
|||
данных |
|
|
|
|
|
|
|
|
|
Команды ХСН производят обмен данных, а команды PUSH и POP
предназначены для записи данных в стек и их чтение. Размер стека ограничен размером памяти данных.
Группа команд пересылок микроконтроллера имеет следующую особенность - в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в
которых вместо адреса можно ставить название соответствующего регистра.
Регистр-аккумулятор имеет два различных имени в зависимости от способа адресации: А - при неявной адресации (например, MOV A, R0) и АСС
- при использовании прямого адреса.
Таблица 2 – команды арифметических операций
Название команды |
|
Мнемокод |
КОП |
Б |
Ц |
Операция |
Сложение |
|
ADD A, Rn |
0010.1rrr |
1 |
1 |
(A)<-(A) + (Rn) |
аккумулятора |
с |
|
|
|
|
|
регистром (n= 0…7) |
|
|
|
|
|
|
6
Сложение |
|
ADD A, ad |
|
0010.0101 |
2 |
1 |
(A)<-(A) + (ad) |
|
аккумулятора с прямо- |
|
|
|
|
|
|
|
|
адресуемым байтом |
|
|
|
|
|
|
|
|
Сложение |
|
ADD A, @Ri |
0010.011i |
1 |
1 |
(A)<-(A) |
+ |
|
аккумулятора с байтом |
|
|
|
|
|
((Ri)) |
|
|
из памяти данных |
|
|
|
|
|
|
|
|
(i = 0,1) |
|
|
|
|
|
|
|
|
Сложение |
|
ADD |
A, |
0010.0100 |
2 |
1 |
(A)<-(A) |
+ |
аккумулятора |
с |
#data8 |
|
|
|
|
#data8 |
|
константой |
|
|
|
|
|
|
|
|
Сложение |
|
ADDC A, Rn |
0011.1rrr |
1 |
1 |
(A)<-(A) + (Rn) |
||
аккумулятора |
с |
|
|
|
|
|
+ (C) |
|
регистром и переносом |
|
|
|
|
|
|
|
|
Сложение |
|
ADDC A, ad |
0011.0101 |
2 |
1 |
(A)<-(A) + (ad) |
||
аккумулятора с прямо- |
|
|
|
|
|
+ (C) |
|
|
адресуемым |
|
|
|
|
|
|
|
|
байтом и переносом |
|
|
|
|
|
|
|
|
Сложение |
|
ADDC |
A, |
0011.011i |
1 |
1 |
(A)<-(A) |
+ |
аккумулятора с байтом |
@Ri |
|
|
|
|
((Ri)) + (C) |
||
из памяти данных и |
|
|
|
|
|
|
|
|
переносом |
|
|
|
|
|
|
|
|
Сложение |
|
ADDC |
A, |
0011.0100 |
2 |
1 |
(A)<-(A) |
+ |
аккумулятора |
с |
#data8 |
|
|
|
|
#data8 + (C) |
|
константой и переносом |
|
|
|
|
|
|
|
|
Десятичная |
коррекция |
DAA |
|
1101.0100 |
1 |
1 |
Если |
|
аккумулятора |
|
|
|
|
|
|
(А0…A3)>9 |
|
|
|
|
|
|
|
|
или ((АС)=1), |
|
|
|
|
|
|
|
|
то (А0…A3)<- |
|
|
|
|
|
|
|
|
( А0…A3) + 6, |
|
|
|
|
|
|
|
|
затем |
если |
|
|
|
|
|
|
|
(А4…A7)>9 |
|
|
|
|
|
|
|
|
или ((С)=1), |
|
|
|
|
|
|
|
|
то (А4…A7) <- |
|
|
|
|
|
|
|
|
(А4…A7) + 6 |
|
Вычитание |
из |
SUBB A, Rn |
1001.1rrr |
1 |
1 |
(А)<-(А) – (С) |
||
аккумулятора |
регистра |
|
|
|
|
|
– (Rn) |
|
и заёма |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Вычитание |
из |
SUBB A, ad |
1001.0101 |
2 |
1 |
(А)<-(А) – (С) |
||
аккумулятора |
прямо- |
|
|
|
|
|
– ((ad)) |
|
адресуемого байта |
|
|
|
|
|
|
|
|
и заема |
|
|
|
|
|
|
|
|
7
Вычитание |
|
из |
SUBB A, @Ri |
1001.011i |
1 |
1 |
(А)<-(А) – (С) |
|
аккумулятора |
байта |
|
|
|
|
|
– ((Ri)) |
|
памяти данных и заема |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Вычитание |
|
из |
SUBB |
A, |
1001.0100 |
2 |
1 |
(А)<-(А) – (С) |
аккумулятора |
|
|
data8 |
|
|
|
|
- #data8 |
константы и заема |
|
|
|
|
|
|
|
|
Инкремент |
|
|
INC A |
|
0000.0100 |
1 |
1 |
(А)<-(А) + 1 |
аккумулятора |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Инкремент регистра |
|
INC Rn |
|
0000.1rrr |
1 |
1 |
(Rn)<-(Rn)+ 1 |
|
|
|
|
|
|
|
|
|
|
Инкремент |
|
|
INC ad |
|
0000.0101 |
2 |
1 |
(ad)<-(ad) + 1 |
прямоадресуемого |
|
|
|
|
|
|
|
|
байта |
|
|
|
|
|
|
|
|
Инкремент |
байта |
в |
INC @Ri |
|
0000.011i |
1 |
1 |
((Ri))<-((Ri))+1 |
памяти данных |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Инкремент |
указателя |
INC DPTR |
|
1010.0011 |
1 |
2 |
(DPTR)<- |
|
данных |
|
|
|
|
|
|
|
(DPTR) + 1 |
|
|
|
|
|
|
|
|
|
Декремент |
|
|
DEC A |
|
0001.0100 |
1 |
1 |
(A)<-(A)-1 |
аккумулятора |
|
|
|
|
|
|
|
|
Декремент регистра |
|
DEC Rn |
|
0001.1rrr |
1 |
1 |
(Rn)<-(Rn)-1 |
|
Декремент |
|
|
DEC ad |
|
0001.0101 |
2 |
1 |
(ad)<-(ad)-1 |
прямоадресуемого |
|
|
|
|
|
|
|
|
байта |
|
|
|
|
|
|
|
|
Декремент |
байта |
в |
DEC @Ri |
|
0001.011i |
1 |
1 |
((Ri))<-((Ri))-1 |
памяти данных |
|
|
|
|
|
|
|
|
Умножение |
|
|
MUL AB |
|
1010.0100 |
1 |
4 |
(B)(A)<- |
аккумулятора |
|
на |
|
|
|
|
|
(A)*(B) |
регистр В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Деление аккумулятора |
DIV AB |
|
1000.0100 |
1 |
4 |
(A).(B)<- |
||
на регистр В |
|
|
|
|
|
|
|
(A)/(B) |
|
|
|
|
|
|
|
|
|
Втаблице 2 приведен список арифметических операций,
поддерживаемых микропроцессором. Можно заметить, что результат выполнения команд ADD, ADDC, SUBB, MUL и DIV отображается флагами регистра PSW. Флаг С (carry) устанавливается при переносе из разряда D7, т.
е. в случае, если результат не помещается в восемь разрядов; флаг АС
(advanced carry) устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA.
8
Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки знаковых чисел.
Флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.
Таблица 3 – команды логических операций
Название команды |
Мнемокод |
КОП |
Б |
Ц |
Операция |
|
Логическое |
И |
ANL A, Rn |
0101.1rrr |
1 |
1 |
(A)<-(A) AND |
аккумулятора |
и |
|
|
|
|
(Rn) |
регистра |
|
|
|
|
|
|
Логическое |
И |
ANL A, ad |
0101.0101 |
2 |
1 |
(A)<-(A) AND |
аккумулятора |
и |
|
|
|
|
(ad) |
прямоадресуемого |
|
|
|
|
|
|
байта |
|
|
|
|
|
|
Логическое |
И |
ANL A, @Ri |
0101.011i |
1 |
1 |
(A)<- |
аккумулятора и байта |
|
|
|
|
(A)AND((Ri)) |
|
из памяти данных |
|
|
|
|
|
|
Логическое |
И |
ANL A, #data8 |
0101.0100 |
2 |
1 |
(A)<-(A) AND |
аккумулятора |
и |
|
|
|
|
#data8 |
константы |
|
|
|
|
|
|
Логическое |
И |
ANL ad, A |
0101.0010 |
2 |
1 |
(ad)<-(ad) |
прямоадресуемого |
|
|
|
|
AND (A) |
|
байта и аккумулятора |
|
|
|
|
|
|
Логическое |
И |
ANL ad, #data8 |
0101.0011 |
3 |
2 |
(ad)<-(ad) |
прямоадресуемого |
|
|
|
|
AND #data8 |
|
байта и константы |
|
|
|
|
|
|
Логическое |
ИЛИ |
ORLA, Rn |
0100.1rrr |
1 |
1 |
(A)<-(A) OR |
аккумулятора |
и |
|
|
|
|
(Rn) |
регистра |
|
|
|
|
|
|
Логическое |
ИЛИ |
ORLA, ad |
0100.0101 |
2 |
1 |
(A)<-(A) OR |
аккумулятора |
и |
|
|
|
|
(ad) |
прямоадресуемого |
|
|
|
|
|
|
байта |
|
|
|
|
|
|
Логическое |
ИЛИ |
ORLA, @Ri |
0100.011i |
1 |
1 |
(A)<-(A) OR |
аккумулятора и байта |
|
|
|
|
((Ri)) |
|
из памяти данных |
|
|
|
|
|
|
Логическое |
ИЛИ |
ORL A, #data8 |
0100.0100 |
2 |
1 |
(A)<-(A) OR |
аккумулятора |
и |
|
|
|
|
#data8 |
константы |
|
|
|
|
|
|
9
Логическое |
ИЛИ |
ORL ad, A |
0100.0010 |
2 |
1 |
(ad)<-(ad) |
OR |
|
прямоадресуемого |
|
|
|
|
(A) |
|
||
байта и аккумулятора |
|
|
|
|
|
|
||
Логическое |
ИЛИ |
ORL ad, #data8 |
0100.0011 |
3 |
2 |
(ad)<-(ad) |
OR |
|
прямоадресуемого |
|
|
|
|
#data8 |
|
||
байта и константы |
|
|
|
|
|
|
||
Исключающее |
ИЛИ |
XRL A, Rn |
0110.1rrr |
1 |
1 |
(A)<-(A) XOR |
||
аккумулятора |
и |
|
|
|
|
(Rn) |
|
|
регистра |
|
|
|
|
|
|
|
|
Исключающее |
ИЛИ |
XRL A, ad |
0110.0101 |
2 |
1 |
(A)<-(A) XOR |
||
аккумулятора |
и |
|
|
|
|
(ad) |
|
|
прямоадресуемого |
|
|
|
|
|
|
||
байта |
|
|
|
|
|
|
|
|
Исключающее |
ИЛИ |
XRL A, @Ri |
0110.0111 |
1 |
1 |
(A)<-(A) XOR |
||
аккумулятора и байта |
|
|
|
|
((Ri)) |
|
||
памяти данных |
|
|
|
|
|
|
|
|
Исключающее |
ИЛИ |
XRL A, #data8 |
0110.0100 |
2 |
1 |
(A)<-(A) XOR |
||
аккумулятора |
и |
|
|
|
|
#data8 |
|
|
константы |
|
|
|
|
|
|
|
|
Исключающее |
ИЛИ |
XRL ad, A |
0110.0010 |
2 |
1 |
(ad)<-(ad) |
|
|
прямоадресуемого |
|
|
|
|
XOR (A) |
|
||
байта и аккумулятора |
|
|
|
|
|
|
||
Исключающее |
ИЛИ |
XRL ad, #data8 |
0110.0011 |
3 |
2 |
(ad)<-(ad) |
|
|
прямоадресуемого |
|
|
|
|
XOR #data8 |
|||
байта и константы |
|
|
|
|
|
|
||
Сброс аккумулятора |
CLR A |
1110.0100 |
1 |
1 |
(A)<-0 |
|
||
Инверсия |
|
CPL A |
1111.0100 |
1 |
1 |
(A)<-NOT(A) |
||
аккумулятора |
|
|
|
|
|
|
|
|
Сдвиг |
аккумулятора |
RL A |
0010.0011 |
1 |
1 |
(An+1)<-(An), |
||
влево циклический |
|
|
|
|
n=0…6, (A0) <- |
|||
|
|
|
|
|
|
|
(A7) |
|
Сдвиг |
аккумулятора |
RLC A |
0011.0011 |
1 |
1 |
(An+i)<-(An), |
||
влево через перенос |
|
|
|
|
n=0…6, (A0) <- |
|||
|
|
|
|
|
|
|
(С), (С) <-А7) |
|
Сдвиг |
аккумулятора |
RR A |
0000.0011 |
1 |
1 |
(An)<-(An+i), |
||
вправо циклический |
|
|
|
|
n=0…6, (A7)<- |
|||
|
|
|
|
|
|
|
(A0) |
|
Сдвиг |
аккумулятора |
RRC A |
0001.0011 |
1 |
1 |
(An)<-(An+i), |
||
вправо через перенос |
|
|
|
|
n=0…6, (A7) <- |
|||
|
|
|
|
|
|
|
(С), (С) <-(A0) |
|
Обмен местами тетрад |
SWAP A |
1100.0100 |
1 |
1 |
(A0...A3)<- |
|
||
в аккумуляторе |
|
|
|
|
|
>(A4...A7) |
|
10
В таблице 3 дано краткое описание команд логических операций,
которые выполняют следующие преобразования над байтами: логическое
«И», логическое «ИЛИ», «исключающее ИЛИ», инверсия, сброс в нулевое значение и сдвиг значения, которое хранится в аккумуляторе влево или вправо.
Группа команд битовых операций состоит из 12 команд, краткое описание которых приведено в таблице 4. Эти команды позволяют выполнять операции над отдельными битами: сброс, установку, инверсию бита, а также логические «И» и «ИЛИ».
Таблица 4 – команды битовых операций
Название команды |
Мнемокод |
КОП |
Б |
Ц |
Операция |
||
Сброс переноса |
|
CLRC |
1100.0011 |
1 |
1 |
(С)<-0 |
|
Сброс бита |
|
|
CLR bit |
1100.0010 |
2 |
1 |
(bit)<-0 |
Установка |
|
|
SETBC |
1101.0011 |
1 |
1 |
(С)<-1 |
переноса |
|
|
|
|
|
|
|
Установка бита |
|
SETB bit |
1101.0010 |
2 |
1 |
(bit)<-1 |
|
Инверсия переноса |
CPLC |
1011.0011 |
1 |
1 |
(С)<-NOT(C) |
||
Инверсия бита |
|
CPL bit |
1011.0010 |
2 |
1 |
(bit)<-NOT(bit) |
|
Логическое И бита |
ANL C, bit |
1000.0010 |
2 |
2 |
(C)<-(C) AND (bit) |
||
и переноса |
|
|
|
|
|
|
|
Логическое |
|
И |
ANL C, /bit |
1011.0000 |
2 |
2 |
(С)<-(С)AND |
инверсии бита |
и |
|
|
|
|
(NOT(b)) |
|
переноса |
|
|
|
|
|
|
|
Логическое |
ИЛИ |
ORL C, bit |
0111.0010 |
2 |
2 |
(С)<-(С) OR (bit) |
|
бита и переноса |
|
|
|
|
|
|
|
Логическое |
ИЛИ |
ORL C, /bit |
1010.0000 |
2 |
2 |
(С)<- |
|
инверсии бита |
и |
|
|
|
|
(С)OR(NOT(bit)) |
|
переноса |
|
|
|
|
|
|
|
Пересылка |
бита |
в |
MOV C, bit |
1010.0010 |
2 |
1 |
(C)<-(bit) |
перенос |
|
|
|
|
|
|
|
Пересылка |
|
|
MOV bit, С |
1001.0010 |
2 |
2 |
(bit)<-(C) |
переноса в бит |
|
|
|
|
|
|
В качестве "логического" аккумулятора, участвующего во всех операциях с двумя операндами, выступает флаг переноса «С» (разряд D7 PSW), а в качестве операндов могут использоваться 128 бит памяти данных и регистры специальных функций, допускающие адресацию отдельных бит.