В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > MCS-51 > Команды
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Система команд микроконтроллеров MCS-51

ACALL
ADDC A
AJMP
ANL
ANL C
CJNE
CLR A
CLR <bit>
CPL A
CPL <bit>
DA A
DEC
DIV AB
DJNZ
INC <байт>
INC DPTR
JB
JBC
JC
JMP
JNB
JNC
JNZ
JZ
LCALL
LJMP
MOV
MOV бит
MOV DPTR
MOVC
MOVX
MUL AB
NOP
ORL
ORL C
POP
PUSH
RET
RETI
RL A
RLC A
RR A
RRC A
SETB
SJMP
SUBB A
SWAP A
XCH A
XCHD
XRL
  Engl 183Kb Система команд микроконтроллеров семейства MCS-51

Система команд ОМЭВМ предоставляет большие возможности обработки данных, обеспечивает реализацию логических, арифметических операций, а также управление в режиме реалиного времени. Реализована побитовая, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных.

БИС семейства MCS-51 - 8-разрядная ОМЭВМ: ПЗУ, ОЗУ, регистры специального назначения, АЛУ и внешние шины имеют байтовую организацию. Двухбайтовые данные используются только регистром-указателем (DPTR) и счетчиком команд (РС). Следует отметить, что регистр-указатель данных может быть использован как двухбайтовый регистр DPTR или как два однобайтовых регистра специального назначения DPH и DPL. Счетчик команд всегда используется как двухбайтовый регистр.

Набор команд ОМЭВМ имеет 42 мнемонических обозначения команд для конкретизации 33 функций этой системы.

Синтаксис большинства команд ассемблерного языка состоит из мнемонического обозначения функции, всед за которым идут операнды, указывающие методы адресации и типы данных. Различные типы данных или режимы адресации определяются установленными операндами, а не изменениями мнемонических обозначений.

Систему команд условно можно разбить на пять групп:

Существуют следующие типы адресации операндов-источников:

Таблица обозначений и символов, используемых в системе команд

Обозначение, символ Назначение
А Аккумулятор
Rn Регистры текущего выбранного банка регистров
r Номер загружаемого регистра, указанного в команде
direct Прямо адресуемый 8-битовый внутренний адрес ячейка данных, который может быть ячейкой внутреннего ОЗУ данных (0-127) или SFR (128-255)
@Rr Косвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных
data8 8-битовое непосредственное данное, входящее в КОП
dataH Старшие биты (15-8) непосредственных 16-битовых данных
dataL Младшие биты (7-0) непосредственных 16-битовых данных
addr11 11-битовый адрес назначения
addrL Младшие биты адреса назначения
disp8 8-битовый байт смещения со знаком
bit Бит с прямой адресацией, адрес которого содержит КОП, находящийся во внутреннем ОЗУ данных или SFR
a15, a14...a0 Биты адреса назначения
(Х) Содержимое элемента Х
((Х)) Содержимое по адресу, хранящемуся в элементе Х
(Х)[M] Разряд М элемента Х

+
-
*
/
AND
OR
XOR
/X
Операции:
сложения
вычитания
умножения
деления
логического умножения (операция И)
логического сложения (операция ИЛИ)
сложения по модулю 2 (исключающее ИЛИ)
инверсия элемента Х

Мнемонические обозначения функций однозначно связаны с конкретными комбинациями способов адресации и типами данных. Всего в системе команд возможно 111 таких сочетаний. В таблице приведен перечень команд, упорядоченных по алфавиту.

Мнемоника Функция Флаги
Команда ACALL <addr 11> Абсолютный вызов подпрограммы  
Команда ADD A, <байт-источник> Сложение AC, C, OV
Команда ADDC A, <байт-источник> Сложение с переносом AC, C, OV
Команда AJMP <addr 11> Абсолютный переход  
Команда ANL <байт-назначения>, <байт-источникa> Логическое "И"  
Команда ANL C, <байт-источникa> Логическое "И" для переменных-битов C
Команда CJNE <байт-назначения>, <байт-источник>, <смещение> Сравнение и переход, если не равно C
Команда CLR A Сброс аккумулятора  
Команда CLR <bit> Сброс бита C, bit
Команда CPL A Инверсия аккумулятора  
Команда CPL <bit> Инверсия бита C, bit
Команда DA A Десятичная коррекция аккумулятора для сложения AC, C
Команда DEC <байт> Декремент  
Команда DIV AB Деление C, OV
Команда DJNZ <байт>, <смещение> Декремент и переход, если не равно нулю  
Команда INC <байт> Инкремент  
Команда INC DPTR Инкремент указателя данных  
Команда JB <bit>, <re18> Переход, если бит установлен  
Команда JBC <bit>, <re18> Переход, если бит установлен и сброс этого бита  
Команда JC <re18> Переход, если перенос установлен  
Команда JMP @A+DPTR Косвенный переход  
Команда JNB <bit>, <re18> Переход, если бит не установлен  
Команда JNC <re18> Переход, если перенос не установлен  
Команда JNZ <re18> Переход, если содержимое аккумулятора не равно нулю  
Команда JZ <re18> Переход, если содержимое аккумулятора равно 0  
Команда LCALL <addr16> Длинный вызов  
Команда LJMP <addr16> Длинный переход  
Команда MOV <байт-назначения>, <байт-источника> Переслать переменную-байт  
Команда MOV <бит-назначения>, <бит-источника> Переслать бит данных C
Команда MOV DPTR,#data16 Загрузить указатель данных 16-битовой константой  
Команда MOVC A,@A+(<R16>) Переслать байт из памяти программ  
Команда MOVX <байт приемника>, <байт источника> Переслать во внешнюю память (из внешней памяти) данных  
Команда MUL AB Умножение C, OV
Команда NOP Нет операции PC
Команда ORL <байт-назначения>, <байт-источникa> Логическое "ИЛИ" для перемнных-байтов  
Команда ORL C, <бит источникa> Логическое "ИЛИ" для переменных-битов C
Команда POP <direct> Чтение из стека  
Команда PUSH <direct> Запись в стек  
Команда RET Возврат из подпрограммы  
Команда RETI Возврат из прерывания  
Команда RL A Сдвиг содержимого аккумулятора влево  
Команда RLC A Сдвиг содержимого аккумулятора влево через флаг переноса  
Команда RR A Сдвиг содержимого аккумулятора вправо  
Команда RRC A Сдвиг содержимого аккумулятора вправо через флаг переноса C
Команда SETB <bit> Установить бит C
Команда SJMP <метка> Короткий переход  
Команда SUBB A, <байт источника> Вычитание с заемом AC, C, OV
Команда SWAP A Обмен тетрадами внутри аккумулятора  
Команда XCH A, <байт> Обмен содержимого аккумулятора с переменной-байтом  
Команда XCHD A,@R1 Обмен тетрадой  
Команда XRL <байт-назначения>, <байт-источникa> Логическое "ИСКЛЮЧАЮЩЕЕ ИЛИ" для перемнных-байтов