Меню:
Главная
Форум
Литература:
Программирование и ремонт
Импульсные блоки питания
Неисправности и замена
Радиоэлектронная аппаратура
Микросхема в ТА
Рубрикатор ТА
Кабельные линии
Обмотки и изоляция
Радиоаппаратура
Гибкие диски
часть 2
часть 3
часть 4
часть 5
Ремонт компьютера
часть 2
Аналитика:
Монтаж
Справочник
Электроника
Мощные высокочастотные транзисторы
200 микросхем
Полупроводники ч.1
Часть 2
Алгоритмические проблемы
500 микросхем
500 микросхем
Сортировка и поиск
Монады
Передача сигнала
Электроника
Прием сигнала
Телевидиние
Проектирование
Эвм
Оптимизация
Автомобильная электроника
Поляковтрансиверы
Форт
Тензодатчик
Силовые полевые транзисторы
Распределение частот
Резисторные и термопарные
Оберон
Открытые системы шифрования
Удк
|
назад Оглавление вперед
[7]
Название команды | Мнемокод | КОП | r | B | Ц. | Операция | Пересылка в аккумулятор байта из ВПД | MOVX A, @Ri | 1110001i | 1 | 1 | 2 | (A) - ((Ri)) | Пересылка в аккумулятор байта из расширенной ВПД | MOVX A,@DPTR | 11100000 | 1 | 1 | 2 | (A) - ((DPTR)) | Пересылка в ВПД из аккумулятора | MOVX @Ri, A | 1111001i | 1 | 1 | 2 | ((Ri)) - (A) | Пересылка в расширенную ВПД из аккумулятора | MOVX @DPTR,A | 11110000 | 1 | 1 | 2 | ((DPTR)) - (A) | Загрузка в стек | PUSH ad | 11000000 | 3 | 2 | 2 | (SP) - (SP) + 1, ((SP)) - (ad) | Извлечение из стека | POP ad | 11010000 | 3 | 2 | 2 | (ad) - (SP), (SP) - (SP) - 1 | Обмен аккумулятора с регистром | XCH A, Rn | 11001rrr | 1 | 1 | 1 | (A) - (Rn) | Обмен аккумулятора с прямоадресуемым байтом | XCH A, ad | 11000101 | 3 | 2 | 1 | (A) - (ad) | Обмен аккумулятора с байтом из РПД | XCH A, @Ri | 1100011i | 1 | 1 | 1 | (A) - ((Ri)) | Обмен младших тетрад аккумулятора и байта РПД | XCHD A, @Ri | 1101011i | 1 | 1 | 1 | (A0...3) -((Ro0...3) |
По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды M0VX и MOVC соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая - чтение байт из памяти программ. По команде XCH выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD - обмен младшими тетрадами (битами 0 - 3). Команды PUSH и РОР предназначены соответственно для записи данных в стек и их чтения из стека. Размер стека ограничен лишь размером резидентной памяти данных. В процессе инициализации микроЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н. Группа команд пересылок микроконтроллера имеет следующую особенность - в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в которых вместо адреса можно ставить название соответствующего регистра. Например, чтение PSW в аккумулятор может быть выполнено командой MOV A, PSW которая преобразуется Ассемблером к виду MOV А, 0D0h (E5 D0), где Е5 - код операции, а D0 - операнд (адрес PSW). Кроме того, следует отметить, что в микро-ЭВМ аккумулятор имеет два различных имени в зависимости от способа адресации: А - при неявной адресации (например, MOV A, R0) и АСС - при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим. 4.1.7.Команды арифметических операций 8051. В данную группу входят 24 команды, краткое описание которых приведено в таблице. Из нее следует, что микроЭВМ выполняет достаточно широкий набор команд для организации обработки целочисленных данных, включая команды умножения и деления. В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц). Таблица.8.Арифметические операции. Название команды | Мнемокод | КОП | Т | Б | Ц | Операция | Сложение аккумулятора с регистром (n=0-7) | ADD A, Rn | 00I01rrr | 1 | 1 | | (A) - (A) + (Rn) | Сложение аккумулятора с прямоадресуемым байтом | ADD A, ad | 00100101 | 3 | 2 | | (A) - (A) + (ad) | Сложение аккумулятора с байтом из РПД (i = 0,1) | ADD A, @Ri | 0010011i | 1 | 1 | | (A) - (A) + ((Ri)) | Сложение аккумулятора с константой | ADD A, #d | 00100100 | 2 | 2 | | (A) - (A) + #d | Сложение аккумулятора с регистром и переносом | ADDC A, Rn | 00111m- | | 1 | | (A) - (A) + (Rn) + (C) | Сложение аккумулятора с прямоадресуемым байтом и переносом | ADDC A, ad | 00110101 | 3 | 2 | | (A) - (A) + (ad) + (C) | Сложение аккумулятора с байтом из РПД и переносом | ADDC A, @Ri | 0011011i | T | 1 | | (A) - (A) + ((Ri)) + (C) | Сложение аккумулятора с константой и переносом | ADDC A, #d | 00110100 | 2 | 2 | | (A) - (A) + # d + (C) | Десятичная коррекция аккумулятора | DA A | 11010100 | 1 | 1 | | Если (А0...3)>9 или ((AC)=1),to(A0...3)- (А0...З) + 6, затем если (а4 7) >9 или ((С)=1), то (А4...7) - (А4...7) + 6 | Вычитание из аккумулятора регистра и заёма | SUBB A, Rn | 10011rrr | T | 1 | | (A) - (A) - (C) - (Rn) | Вычитание из аккумулятора прямоадресуемого байта и заема | SUBB A, ad | 10010101 | 3 | 2 | | (A) - (A) - (C) - ((ad)) | Вычитание из аккумулятора байта РПД и заема | SUBB А, @Ri | 1001011i | T | 1 | | (A) - (A) - (C) - ((Ri)) | Вычитание из аккумулятора константы и заема | SUBB А, d | 10010100 | 2 | 2 | | (A) - (A) - (C) - #d | Инкремент аккумулятора | INC А | 00000100 | 1 | 1 | | |
Название команды | Мнемокод | КОП | T | Б | Ц | Операция | Инкремент регистра | INC Rn | 00001rrr | 1 | 1 | 1 | (Rn) - (Rn) + 1 | Инкремент прямоадресуемого байта | INC ad | 00000101 | 3 | 2 | 1 | (ad) - (ad) + 1 | Инкремент байта в РПД | INC @Ri | 0000011i | 1 | 1 | 1 | ((Ri)) - ((Ri)) + 1 | Инкремент указателя данных | INC DPTR | 10100011 | 1 | 1 | 2 | (DPTR ) - (DPTR) + 1 | Декремент аккумулятора | DEC A | 00010100 | 1 | 1 | 1 | (A) - (A) - 1 | Декремент регистра | DEC Rn | 00011 rrr | 1 | 1 | 1 | (Rn) - (Rn) - 1 | Декремент прямоадресуемого байта | DEC ad | 00010101 | 3 | 2 | 1 | (ad) - (ad) - 1 | Декремент байта в РПД | DEC @Ri | 0001011i | 1 | 1 | 1 | ((Ri)) - ((Ri)) - 1 | Умножение аккумулятора на регистр В | MUL AB | 10100100 | 1 | 1 | 4 | (B)(A) - (A)*) | Деление аккумулятора на регистр В | DIV AB | 10000100 | 1 | 1 | 4 | (B).(A) - |
По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV устанавливаются флаги PSW, структура которых приведена в таблице. Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA. Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком. Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0. 4.1.8.Команды логических операций микроконтроллера 8051. В этой группе 25 команд, их краткое описание приведено в таблице. Нетрудно видеть, что эти команды позволяют выполнять операции над байтами: логическое И (/\ ), логическое ИЛИ ( V), исключающее ИЛИ ((+)), инверсию (NOT), сброс в нулевое значение и сдвиг. В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц). Таблица.Э.Логические операции Название команды | Мнемокод | КОП | r | Б | | Операция | Логическое И аккумулятора и регистра | ANL A, Rn | 01011rrr | 1 | 1 | | (A) - (A) AND (Rn) | Логическое И аккумулятора и прямоадресуемого байта | ANL A, ad | 01010101 | 3 | 2 | | (A) - (A) AND (ad) | Логическое И аккумулятора и байта из РПД | ANL A, @Ri | 0101011i | 1 | 1 | | (A) - (A) AND ((Ri)) | Логическое И аккумулятора и константы | ANL A, #d | 01010100 | 2 | 2 | | (A) - (A) AND #d | Логическое И прямоадресуемого байта и аккумулятора | ANL ad, A | 01010010 | 3 | 2 | | (ad) - (ad) AND (A) | Логическое И прямоадресуемого байта и константы | ANL ad, #d | 01010011 | 7 | 3 | | (ad) - (ad) AND #d | Логическое ИЛИ аккумулятора и регистра | ORL A, Rn | 01001 rrr | 1 | 1 | | (A) - (A) OR (Rn) | Логическое ИЛИ аккумулятора и прямоадресуемого байта | ORL A, ad | 01000101 | 3 | 2 | | (A) - (A) OR (ad) | Логическое ИЛИ аккумулятора и байта из РПД | ORL A, @Ri | 0100011i | 1 | 1 | | (A) - (A) OR ((Ri)) | Логическое ИЛИ аккумулятора и константы | ORL A, #d | 01000100 | 2 | 2 | | (A) - (A) OR #d | Логическое ИЛИ прямоадресуемого байта и аккумулятора | ORL ad, A | 01000010 | 3 | 2 | | (ad) - (ad) OR (A) | Логическое ИЛИ прямоадресуемого байта и константы | ORL ad, #d | 01000011 | 7 | 3 | | (ad) - (ad) OR #d | Исключающее ИЛИ аккумулятора и регистра | XRL A, Rn | 01101rrr | 1 | 1 | | (A) - (A) XOR (Rn) | Исключающее ИЛИ аккумулятора и прямоадресуемого байта | XRL A, ad | 01100101 | 3 | 2 | | (A) - (A) XOR (ad) | Исключающее ИЛИ аккумулятора и байта из РПД | XRL A, @Ri | 0110011i | 1 | 1 | | (A) - (A) XOR ((Ri)) | Исключающее ИЛИ аккумулятора и константы | XRL A, #d | 01100100 | 2 | 2 | | (A) - (A) XOR #d | Исключающее ИЛИ прямоадресуемого байта и аккумулятора | XRL ad, A | 01100010 | 3 | 2 | | (ad) - (ad) XOR (A) | Исключающее ИЛИ прямоадресуемого байта и константы | XRL ad, #d | 01100011 | 7 | 3 | | (ad) - (ad) XOR #d | Сброс аккумулятора | CLR A | 11100100 | 1 | 1 | | (A) - 0 | Инверсия аккумулятора | CPL A | 11110100 | 1 | 1 | | (A) - NOT(A) | Сдвиг аккумулятора влево циклический | RL A | 00100011 | 1 | 1 | | (An+1) - (An), n=06, (A0) - (A7) | Сдвиг аккумулятора влево через перенос | RLC A | 00110011 | 1 | 1 | | (An+1) - (An), n=06 (A0) - (C), (C) -(A7) | Сдвиг аккумулятора вправо циклический | RR A | 00000011 | 1 | 1 | | (An) - (An+1), n=06, (A7) - (A0) | Сдвиг аккумулятора вправо через перенос | RRC A | 00010011 | 1 | 1 | | (An) - (An+1), n=06 (A7) - (C), (C) -(A0) | Обмен местами тетрад в аккумуляторе | SWAP A | 11000100 | 1 | 1 | | (A0...3) (A4...7) |
4.1.9.Команды операций над битами микроконтроллера 8051. Группа состоит из 12 команд, краткое описание которых приведено в таблице. Эти команды позволяют выполнять операции над отдельными битами: сброс, установку, инверсию бита, а также логические И (Л) и ИЛИ (V). В качестве "логического" аккумулятора, участвующего во всех операциях с двумя операндами, выступает признак переноса С (разряд d7 pSw), в качестве операндов могут использоваться 128 бит из резидентной памяти данных и регистры специальных функций, допускающие адресацию отдельных бит. В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц). Название команды | Мнемокод | КОП | Т | Б | ц. | Операция | Сброс переноса | CLR С | 11000011 | 1 | 1 | | (C) - 0 | Сброс бита | CLR bit | 11000010 | 4 | 2 | | (b) - 0 | Установка переноса | SETB С | 11010011 | 1 | 1 | | (C) - 1 | Установка бита | SETB bit | 11010010 | 4 | 2 | | (b) - 1 | Инверсия переноса | CPL С | 10110011 | 1 | 1 | | (C) - NOT(C) | Инверсия бита | CPL bit | 10110010 | 4 | 2 | | (b) - NOT(b) | Логическое И бита и переноса | ANL С, bit | 10000010 | 4 | 2 | 2 | (C) - (C) AND (b) | Логическое И инверсии бита и переноса | ANL С, /bit | 10110000 | 4 | 2 | 2 | (C) - (C) AND (NOT(b)) | Логическое ИЛИ бита и переноса | ORL С, bit | 01110010 | 4 | 2 | 2 | (C) - (C) OR (b) | Логическое ИЛИ инверсии бита и переноса | ORL С, /bit | 10100000 | 4 | 2 | 2 | (C) - (C) OR (NOT(b)) | Пересылка бита в перенос | MOV С, bit | 10100010 | 4 | 2 | 1 | (C) - (b) | Пересылка переноса в бит | MOV bit, С | 10010010 | 4 | 2 | 2 | |
4.1.10.Команды передачи управления микроконтроллера 8051. Группа представлена командами безусловного и условного переходов, командами вызова подпрограмм и командами возврата из подпрограмм. В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц). Таблица.11.Команды передачи управления Название команды | Мнемокод | КОП | Т | Б | Ц | Операция | Длинный переход в полном объеме ПП | LJMP ad16 | 00000010 | 12 | 3 | 2 | (PC) - ad16 | Абсолютный переход внутри страницы в 2 Кб | AJMP ad11 | a10a9a800001 | 6 | 2 | 2 | (PC) - (PC) + 2, (PC0-10) - ad11 | Короткий относительный переход внутри страницы в 256 байт | SJMP rel | 10000000 | 5 | 2 | 2 | (PC) - (PC) + 2, (PC) - (PC) +rel | Косвенный относительный переход | JMP @A+DPTR | 01110011 | 1 | 1 | 2 | (PC) - (A) + (DPTR) | Переход, если аккумулятор равен нулю | JZ rel | 01100000 | 5 | 2 | 2 | (PC)-(PC)+2, если (A)=0, то (PC)-(PC)+rel | Переход, если аккумулятор не равен нулю | JNZ rel | 01110000 | 5 | 2 | 2 | (PC)-(PC)+2, если (A)t0, то (PC)-(PC)+rel | Переход, если перенос равен единице | JC rel | 01000000 | 5 | 2 | 2 | (PC)-(PC)+2, если (С)=1, то (PC)-(PC)+rel | Переход, если перенос равен нулю | JNC rel | 01010000 | 5 | 2 | 2 | (PC)-(PC)+2, если (С)=0, то (PC)-(PC)+rel | Переход, если бит равен единице | JB bit, rel | 00100000 | 11 | 3 | 2 | (PC)-(PC)+3, если (b)=l, то (PC)-(PC)+rel | Переход, если бит равен нулю | JNB bit, rel | 00110000 | 11 | 3 | 2 | (PC)-(PC)+3, если (b)=0, то (PC)-(PC)+rel | Переход, если бит установлен, с последующим сбросом бита | JBC bit, rel | 00010000 | 11 | 3 | 2 | (PC) - (PC) + 3, если (b)=1, то (b) - 0 и (PC)- (PC) + rel | Декремент регистра и переход, если не нуль | DJNZ Rn, rel | 11011rrr | 5 | 2 | 2 | (PC) - (PC) + 2, (Rn) - (Rn) - 1, если (Rn) t 0, то (PC) - (PC) + rel | Декремент прямоадресуемого байта и переход, если не нуль | DJNZ ad, rel | 11010101 | 8 | 3 | 2 | (PC) - (PC) + 2, (ad) - (ad) - 1, если (ad) t 0, то (PC) - (PC) + rel | Сравнение аккумулятора с прямоадресуемым байтом и переход, если не равно | CJNE A, ad, rel | 10110101 | 8 | 3 | 2 | (PC) - (PC) + 3,если (A) t (ad), то (PC) - (PC) + ге!,если (A) < (ad), то (c) - 1, иначе (C) - 0 | Сравнение аккумулятора с константой и переход, если не равно | CJNE A, #d, rel | 10110100 | 10 | 3 | 2 | (PC) - (PC) + 3,если (A) t #d, то (PC) - (PC) + ге!,если (A) < #d, то (с) - 1, иначе (С) - 0 | Сравнение регистра с константой и переход, если не равно | CJNE Rn, #d, rel | 10111rrr | 10 | 3 | 2 | (PC) - (PC) + 3,если (Rn) t #d, то (PC) - (PC) + ге!,если (Rn) < #d, то (с) - 1, иначе (С) - 0 |
Сравнение байта в РПД с константой и JCJNE @Ri,#d,rej 1011011i ю3 2 (рс) - (PC) + 3,если ((Ri)) t #d, то~
[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23]
|
Среды:
Smalltalk80
MicroCap
Local bus
Bios
Pci
12С
ML
Микроконтроллеры:
Atmel
Intel
Holtek
AVR
MSP430
Microchip
Книги:
Емкостный датчик
500 схем для радиолюбителей
часть 2 (4)
Структура компьютерных программ
Автоматическая коммутация
Кондиционирование и вентиляция
Ошибки при монтаже
Схемы звуковоспроизведения
Дроссели для питания
Блоки питания
Детекторы перемещения
Теория электропривода
Адаптивное управление
Измерение параметров
Печатная плата pcad pcb
Физика цвета
Управлении софтверными проектами
Математический аппарат
Битовые строки
Микроконтроллер nios
Команды управления выполнением программы
Перехода от ahdl к vhdl
Холодный спай
Усилители hi-fi
Электронные часы
Сердечники из распылённого железа
Анализ алгоритмов
8-разрядные КМОП
Классификация МПК
История
Устройства автоматики
Системы и сети
Частотность
Справочник микросхем
Вторичного электропитания
Типы видеомониторов
Радиобиблиотека
Электронные системы
Бесконтекстный язык
Управление техническими системами
Монтаж печатных плат
Работа с коммуникациями
Создание библиотечного компонента
Нейрокомпьютерная техника
Parser
Пи-регулятор ч.1
ПИ-регулятор ч.2
Обработка списков
Интегральные схемы
Шина ISAВ
Шина PCI
Прикладная криптография
Нетематическое:
Взрывной автогидролиз
Нечеткая логика
Бытовые установки (укр)
Автоматизация проектирования
Сбор и защита
Дискретная математика
Kb радиостанция
Энергетика
Ретро:
Прием в автомобиле
Управление шаговым двигателем
Магнитная запись
Ремонт микроволновки
Дискретные системы
часть 2
|