Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Внешняя память данных формируется дополнительными микросхемами памяти, подключаемыми к ОМЭВМ, и может иметь емкость до 64 Кбайт. Пространства внутренней и внешней памяти данных не пересекаются, т. к. доступ к ним осуществляется с помощью разных команд. Для работы с внешней памятью данных существуют специальные команды MOVX, которые не влияют на внутреннюю память данных ОМЭВМ. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00H – FFH и внешняя память данных с адресами 0000Н – FFFFH. Обращение к ячейкам внешней памяти данных осуществляется только с использованием косвенной адресации по регистрам R0 и R1 активного банка регистров внутреннего ОЗУ (команды типа MOV @Ri) или по регистру специальных функций DPTR (команды типа MOV @DPTR). Соответственно в первом случае будет формироваться 8-разрядный, а во втором случае 16-разрядный адреса внешней памяти данных.
При обращениях к внешней памяти данных адрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) ОМЭВМ. Обмен байтом данных (запись и чтение) производится через порт Р0 ОМЭВМ, т. е. порт Р0 используется как шина адреса/данных в режиме мультиплексирования.
Считывание данных из внешней памяти данных в ОМЭВМ производится с помощью выходного сигнала ОМЭВМ
, а запись данных из ОМЭВМ во внешнюю память данных с помощью выходного сигнала ОМЭВМ
.
Каждый тип внешней памяти (память программ, память данных) может быть добавлен независимо от другого и каждый использует те же шины адреса данных, но различные сигналы управления.
4.6.1. Особый режим работы памяти ОМЭВМ
Рассматриваемая ОМЭВМ не является машиной классической “фон неймановской” архитектуры, т. к. содержит память данных и память программ, которые логически (программно) разделены. Следовательно, оперативная память данных (резидентная или внешняя) не могут быть использованы для хранения кодов программы, так как выборка команд в ОМЭВМ производится только из памяти программ (внутренней и/или внешней). Это объясняется тем, что в большинстве применений микроконтроллера требуется наличие одной неизменяемой прикладной программы, которая записывается в ПЗУ на этапе разработки микропроцессорной системы (МПС), а ОЗУ используется для временного хранения переменных.
Однако, на этапе разработки и отладки прикладных программ машина “фон неймановского” типа оказывается очень удобной, так как позволяет разработчику оперативно изменять коды прикладной программы, размещаемой в ОЗУ.
Для этого МПС с ОМЭВМ может быть модифицирована с целью совмещения адресных пространств ВПП и ВПД путем использования внешней логики, как показано на рисунке 28. ВПП и ВПД объединены в общем внешнем ОЗУ, объемом 64 Кбайт. Запись данных в ОЗУ стробируется сигналом
, формируемом на выходе WR (P 3.6) при выполнении команд записи в ВПД.
![]() |
Рисунок 28 – Совмещение адресных пространств ВПД и ВПП в едином
внешнем ОЗУ, объемом 64 Кбайт
Чтение ОЗУ стробируется сигналом
, формируемом в одном из двух случаев:
- или при чтении ВПД (сопровождается сигналом
(Р 3.7) при выполнении команд чтения ВПД);
- или при чтении команд программы из ВПП (сопровождается сигналом
, формируемом при обращении к ВПП).
Логический элемент И (конъюнктор) реализует переключательную функцию:
(7)
где переменная А соответствует логическому сигналу на выводе RD (Р 3.7), а переменная В – на выводе РВПП.
Порт Р0 используется в режиме “мультиплексирования”. Вначале через него выводится младший байт адреса внешнего ОЗУ (ВПД или ВПП), который запоминается во внешнем буферном регистре адреса (БРА). Затем по линиям Р0 осуществляется обмен данными между ОМЭВМ и ОЗУ. Старший байт адреса ВПП или ВПД постоянно присутствует на выходе порта Р2 в течение всего цикла работы с внешней памятью.
При использовании описанного особого режима работы памяти следует учитывать, что в ОМЭВМ на физическом (аппаратном) уровне используется пять видов памяти: РПД; РПП; ВПД; ВПП и блок регистров специальных функций. Вследствие этого, перемещаемая версия прикладной программы, которая отлаживается во внешней совмещенной памяти программ и данных (во внешнем ОЗУ), будет отличаться от загружаемой в память программ окончательной версии рабочей программы.
Описанный способ организации управления внешней памятью может быть использован в тех применениях МК 51, где требуется оперативная перезагрузка или модификация прикладных программ с помощью устройств ввода-вывода (УВВ) как в ЭВМ классической архитектуры.
4.7. Расширение резидентной (внутренней) системы
ввода-вывода (РСВВ/ВЫВ)
Для сопряжения рассматриваемой ОМЭВМ с объектом, имеющим большое число входов-выходов, можно расширить резидентную систему ввода-вывода, подключив к микроконтроллеру необходимое количество внешних портов. Такое расширение может быть выполнено двумя способами:
- с использованием стандартного расширителя ввода-вывода (РВВ) КР580ВР43;
- с применением интерфейсных БИС типа КР580ВВ55, КР580ВВ51.
Первый способ подробно описан в [2].
Ниже остановимся на втором.
В приведенном на рисунке 29 примере к ОМЭВМ подключены 64 микросхемы КР580ВВ55, являющиеся параллельным программируемым интерфейсом (ППИ). Каждый ППИ содержит три 8-разрядных порта ввода-вывода информации: порт А (РА7…РА0); порт В (РВ7…РВ0) и порт С (РС7…РС0). Это позволяет организовать (64 x 3)=192 8-разрядных порта ввода-вывода. Для выбора (адресации) внутри ППИ одного из 3-х портов или регистра управляющего слова (РУС) используются два его входа: А1, А0. Перевод одного из выбранных ППИ в активное состояние осуществляется нулевым сигналом на входе CS (выбор кристалла).
Обращение к интерфейсам производится командами работы с ВПД:
MOVX @Ri, A; ВПД (Ri) A – при выводе;
MOVX A, @Ri; A ВПД (Ri) – при вводе данных.
При этом порт Р0 ОМЭВМ используется в режиме “мультиплексирования”.

Рисунок 29 - Расширение РС Вв/Выв с помощью микросхем КР580ВВ55
Вначале на выходы Р0 выдается содержимое регистра Ri (i = 0,1), которое запоминается (“защелкивается”) во внешнем буферном 8-разрядном регистре адреса (БРА). Затем по линиям Р0 производится обмен информацией между ОМЭВМ и выбранным портом ППИ. Два младших разряда адреса с выхода БРА через усилители поступают на выходы А1, А0 ППИ и выбирают в нем требуемый порт или РУС (при программировании ППИ). Оставшиеся шесть старших разряда с выхода БРА подаются на входы дешифратора адреса (ДША), преобразующего шестиразрядный параллельный двоичный код (ДК) в шестидесятичетырехпозиционный унитарный код. В зависимости от комбинации ДК на входах ДША активный сигнал низкого уровня появляется только на одном из выходов ДША, номер которого соответствует десятичному эквиваленту входного ДК. Этот сигнал подается на вход CS выбранного ППИ и подключает его выводы D0…D7 к линиям порта Р0. Остальные невыбранные ППИ отключаются от Р0 (переводятся в 3-е, высокоимпедансное состояние). Шинный формирователь (ШФ) служит для усилителя сигналов, снимаемых с выходов порта P0.
При использовании команд MOVX @DPTR, A; MOVX A, @DPTR и некотором усложнении схемы число подключаемых ППИ, а следовательно, число портов ввода-вывода может быть значительно увеличено.
5. Система команд
Система команд ОМЭВМ предоставляет большие возможности обработки данных, обеспечивает реализацию логических, арифметических операций, а также управление в режиме реального времени. Реализована побитовая, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных.
БИС семейства МК51 – 8-разрядная ОМЭВМ: ПЗУ, ОЗУ, регистры специального назначения, АЛУ и внешние шины имеют байтовую организацию. Двухбайтовые данные используются только регистром-указателем (DPTR) и счетчиком команд (РС). Следует отметить, что регистр-указатель данных может быть использован как двухбайтовый регистр DPTR или как два однобайтовых регистра специального назначения DPH и DPL. Счетчик команд всегда используется как двухбайтовый регистр.
Набор команд ОМЭВМ имеет 42 мнемонических обозначения (аббревиатур) команд для конкретизации 33 функций этой системы.
Синтаксис большинства команд ассемблерного языка ОМЭВМ состоит из мнемонического обозначения функции, вслед за которым идут операнды, указывающие методы адресации и типы данных. Различные типы данных или режимы адресации определяются установленными операндами, а не изменениями мнемонических обозначений. Например, аббревиатура "MOV" используется восемнадцатью различными командами для обработки трех типов данных (битов, байтов, адресов) в различных адресных пространствах.
Мнемонические обозначения функций однозначно связаны с конкретными комбинациями способов адресации и типами данных. Всего в системе команд возможно 111 таких сочетаний, которые в зависимости от их функционального назначения можно условно разбить на пять групп:
· команды передачи данных (таблица 21);
· арифметические команды (таблица 22);
· логические операции (таблица 23);
· операции с битами (таблица 24);
· команды передачи управления (таблица 25).
Названные таблицы (21…25) дают достаточно полную характеристику каждой из 111 базовых команд:
· название команды (в краткой форме описывает выполняемую функцию);
· мнемокод (включает в себя мнемонику команды и описание операндов, участвующих в операции);
· код операции команды (КОП);
· тип команды (Т);
· длину команды в байтах (Б);
· количество машинных циклов, требуемых для выполнения команды (Ц);
· комментарий.
Таблица 21 – Группа команд передачи данных | |||||||
№ | Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
1 | Пересылка в аккумулятор из регистра (n=0..7) | MOV A, Rn | 11101rrr | 1 | 1 | 1 | (A) (Rn) |
2 | Пересылка в аккумулятор прямоадресуемого байта | MOV A, ad | 3 | 2 | 1 | (A) (ad) | |
3 | Пересылка в аккумулятор байта из РПД (i=0,1) | MOV A, @Ri | 1110011i | 1 | 1 | 1 | (A) РПД(Ri) |
4 | Загрузка в аккумулятор константы | MOV A, #D8 | 2 | 2 | 1 | (A) D8 | |
5 | Пересылка в регистр (n=0..7) из аккумулятора | MOV Rn, A | 11111rrr | 1 | 1 | 1 | (Rn) (A) |
6 | Пересылка в регистр прямоадресуемого байта | MOV Rn, ad | 10101rrr | 3 | 2 | 2 | (Rn) (ad) |
7 | Загрузка в регистр (n=0..7) константы | MOV Rn, #D8 | 01111rrr | 2 | 2 | 1 | (Rn) D8 |
8 | Пересылка по прямому адресу аккумулятора | MOV ad, A | 3 | 2 | 1 | (ad) (A) | |
9 | Пересылка по прямому адресу регистра | MOV ad, Rn | 10001rrr | 3 | 2 | 2 | (ad) (Rn) |
10 | Пересылка прямоадресуемого байта по прямому адресу | MOV add, ads | 9 | 3 | 2 | (add) (ads) | |
11 | Пересылка байта из РПД по прямому адресу | MOV ad, @Ri | 1000011i | 3 | 2 | 2 | (ad) РПД(Ri) |
12 | Пересылка по прямому адресу константы | MOV ad, #D8 | 7 | 3 | 2 | (ad) D8 | |
13 | Пересылка в РПД из аккумулятора | MOV @Ri, A | 1111011i | 1 | 1 | 1 | РПД(Ri) (A) |
14 | Пересылка в РПД прямоадресуемого байта | MOV @Ri, ad | 0110011i | 3 | 2 | 2 | РПД(Ri) (ad) |
15 | Пересылка в РПД константы | MOV @Ri, #D8 | 0111011i | 2 | 2 | 1 | РПД(Ri) D8 |
16 | Загрузка регистра-указателя данных | MOV DPTR, #D16 | 13 | 3 | 2 | (DPTR) D16 | |
17 | Пересылка в аккумулятор байта из ПП | MOVC A, @A+DPTR | 1 | 1 | 2 | (A) ПП((A) + (DPTR)) | |
18 | Пересылка в аккумулятор байта из ПП | MOVC A, @A+PC | 1 | 1 | 2 | (PC) (PC) + 1 | |
(A) ПП((A) + (PC)) | |||||||
19 | Пересылка в аккумулятор байта из ВПД | MOVX A, @Ri | 1110001i | 1 | 1 | 2 | (A) ВПД(Ri) |
20 | Пересылка в аккумулятор байта из расширенной ВПД | MOVX A, @DPTR | 1 | 1 | 2 | (A) ВПД(DPTR) | |
21 | Пересылка в ВПД из аккумулятора | MOVX @Ri, A | 1111001i | 1 | 1 | 2 | ВПД(Ri) (A) |
22 | Пересылка в расширенную ВПД из аккумулятора | MOVX @DPTR, A | 1 | 1 | 2 | ВПД(DPTR) (A) | |
23 | Загрузка в стек | PUSH ad | 3 | 2 | 2 | (SP) (SP) + 1 | |
РПД(SP) (ad) | |||||||
24 | Извлечение из стека | POP ad | 3 | 2 | 2 | (ad) РПД(SP) | |
(SP) (SP) - 1 | |||||||
25 | Обмен аккумулятора с регистром | XCH A, Rn | 11001rrr | 1 | 1 | 1 | (A) « (Rn) |
26 | Обмен аккумулятора с прямоадресуемым байтом | XCH A, ad | 3 | 2 | 1 | (A) « (ad) | |
27 | Обмен аккумулятора с байтом из PПД | XCH A, @Ri | 1100011i | 1 | 1 | 1 | (A) « РПД(Ri) |
28 | Обмен младшей тетрады аккумулятора с младшей | XCHD A, @Ri | 1101011i | 1 | 1 | 1 | (A0-3) « РПД(Ri)0-3 |
тетрадой байта РПД |
Таблица 22 – Группа команд арифметических операций | |||||||
№ | Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
1 | Сложение аккумулятора с регистром (n=0..7) | ADD A, Rn | 00101rrr | 1 | 1 | 1 | (A) (A) + (Rn) |
2 | Сложение аккумулятора с прямоадресуемым байтом | ADD A, ad | 3 | 2 | 1 | (A) (A) + (ad) | |
3 | Сложение аккумулятора с байтом из РПД (i=0,1) | ADD A, @Ri | 0010011i | 1 | 1 | 1 | (A) (A) + РПД(Ri) |
4 | Сложение аккумулятора с константой | ADD A, #D8 | 2 | 2 | 1 | (A) (A) + D8 | |
5 | Сложение аккумулятора с регистром и переносом | ADDC A, Rn | 00111rrr | 1 | 1 | 1 | (A) (A) + (Rn) + (C) |
6 | Сложение аккумулятора с прямоадресуемым байтом и переносом | ADDC A, ad | 3 | 2 | 1 | (A) (A) + (ad) + (C) | |
7 | Cложение аккумулятора с байтом из РПД и переносом | ADDC A, @Ri | 0011011i | 1 | 1 | 1 | (A) (A) + РПД(Ri) + (C) |
8 | Cложение аккумулятора с константой и переносом | ADDC A, #D8 | 2 | 2 | 1 | (A) (A) + D8 + (C) | |
9 | Десятичная коррекция аккумулятора (после сложения двух | DA A | 1 | 1 | 1 | Если (A3-0) > 9V(AC)=1, | |
операндов, представленных в упакованном BCD-коде) | то (А7-0) (A7-0) + 6 затем | ||||||
если (A7-4) > 9V (C)=1, то | |||||||
(A7-4) (A7-4) + 6 | |||||||
10 | Вычитание из аккумулятора регистра и заема | SUBB A, Rn | 10011rrr | 1 | 1 | 1 | (A) (A) - (C) - (Rn) |
11 | Вычитание из аккумулятора прямоадресуемого байта и заема | SUBB A, ad | 3 | 2 | 1 | (A) (A) - (C) - (ad) | |
12 | Вычитание из аккумулятора байта РПД и заема | SUBB A, @Ri | 1001011i | 1 | 1 | 1 | (A) (A) - (C) - РПД(Ri) |
13 | Вычитание из аккумулятора константы и заема | SUBB A, #D8 | 2 | 2 | 1 | (A) (A) - (C) - D8 | |
14 | Инкремент аккумулятора | INC A | 1 | 1 | 1 | (A) (A) + 1 | |
15 | Инкремент регистра | INC Rn | 00001rrr | 1 | 1 | 1 | (Rn) (Rn) + 1 |
16 | Инкремент прямоадресуемого байта | INC ad | 3 | 2 | 1 | (ad) (ad) + 1 | |
17 | Инкремент байта в РПД | INC @Ri | 0000011i | 1 | 1 | 1 | РПД(Ri) РПД(Ri) + 1 |
18 | Инкремент указателя данных | INC DPTR | 1 | 1 | 2 | (DPTR) (DPTR) + 1 | |
19 | Декремент аккумулятора | DEC A | 1 | 1 | 1 | (A) (A) - 1 | |
20 | Декремент регистра | DEC Rn | 00011rrr | 1 | 1 | 1 | (Rn) (Rn) - 1 |
21 | Декремент прямоадресуемого байта | DEC ad | 3 | 2 | 1 | (ad) (ad) - 1 | |
22 | Декремент байта в РПД | DEC @Ri | 0001011i | 1 | 1 | 1 | РПД(Ri) РПД(Ri) - 1 |
23 | Умножение аккумулятора на регистр В | MUL AB | 1 | 1 | 4 | Если (А)х(В) > 255, то (B)(A) (A)x(B); если (А)х(В) < 255, то (A) (A)x(B) | |
24 | Деление аккумулятора на регистр В | DIV AB | 1 | 1 | 4 | (A)(A)/(B)—целая часть (В) R ((А) / (В)) — остаток от деления |
Таблица 23 – Группа команд логических операций | ||||||||
№ | Название команды | Мнемокод | КОП | Т | Б | Ц | Операция | |
1 | Логическое И аккумулятора и регистра | ANL A, Rn | 01011rrr | 1 | 1 | 1 | (A) (A) L (Rn) | |
2 | Логическое И аккумулятора и прямоадресуемого байта | ANL A, ad | 3 | 2 | 1 | (A) (A) L (ad) | ||
3 | Логическое И аккумулятора и байта из РПД | ANL A, @Ri | 0101011i | 1 | 1 | 1 | (A) (A) L РПД(Ri) | |
4 | Логическое И аккумулятора и константы | ANL A, #D8 | 2 | 2 | 1 | (A) (A) L D8 | ||
5 | Логическое И прямоадресуемого байта и аккумулятора | ANL ad, A | 3 | 2 | 1 | (ad) (ad) L (A) | ||
6 | Логическое И прямоадресуемого байта и константы | ANL ad, #D8 | 7 | 3 | 2 | (ad) (ad) L D8 | ||
7 | Логическое ИЛИ аккумулятора и регистра | ORL A, Rn | 01001rrr | 1 | 1 | 1 | (A) (A) V (Rn) | |
8 | Логическое ИЛИ аккумулятора и прямоадресуемого байта | ORL A, ad | 3 | 2 | 1 | (A) (A) V (ad) | ||
9 | Логическое ИЛИ аккумулятора и байта из РПД | ORL A, @Ri | 0100011i | 1 | 1 | 1 | (A) (A) V РПД(Ri) | |
10 | Логическое ИЛИ аккумулятора и константы | ORL A, #D8 | 2 | 2 | 1 | (A) (A) V D8 | ||
11 | Логическое ИЛИ прямоадресуемого байта и аккумулятора | ORL ad, A | 3 | 2 | 1 | (ad) (ad) V (A) | ||
12 | Логическое ИЛИ прямоадресуемого байта и константы | ORL ad, #D8 | 7 | 3 | 2 | (ad) (ad) V D8 | ||
13 | Исключающее ИЛИ аккумулятора и регистра | XRL A, Rn | 01101rrr | 1 | 1 | 1 | (A) (A) " (Rn) | |
14 | Исключающее ИЛИ аккумулятора и прямоадресуемого байта | XRL A, ad | 3 | 2 | 1 | (A) (A) " (ad) | ||
15 | Исключающее ИЛИ аккумулятора и байта РПД | XRL A, @Ri | 0110011i | 1 | 1 | 1 | (A) (A) " РПД(Ri) | |
16 | Исключающее ИЛИ аккумулятора и константы | XRL A, #D8 | 2 | 2 | 1 | (A) (A) " D8 | ||
17 | Исключающее ИЛИ прямоадресуемого байта и аккумулятора | XRL ad, A | 3 | 2 | 1 | (ad) (ad) " (A) | ||
18 | Исключающее ИЛИ прямоадресуемого байта и константы | XRL ad, #D8 | 7 | 3 | 2 | (ad) (ad) " D8 | ||
19 | Сброс аккумулятора | CLR A | 1 | 1 | 1 | (A) 0 | ||
20 | Инверсия аккумулятора | CPL A | 1 | 1 | 1 | (A) ( | ||
21 | Сдвиг аккумулятора влево циклический |
| RL A | 1 | 1 | 1 | (An+1) (An), n=0..6, (A0) (A7) | |
22 | Сдвиг аккумулятора влево через перенос |
| RLC A | 1 | 1 | 1 | (An+1) (An), n=0..6, (A0) (C), (C) (A7) | |
23 | Сдвиг аккумулятора вправо циклический |
| RR A | 1 | 1 | 1 | (An) (An+1), n=0..6, (A7) (A0) | |
24 | Сдвиг аккумулятора вправо через перенос |
| RRC A | 1 | 1 | 1 | (An) (An+1), n=0..6, (A7) (C), (C) (A0) | |
25 | Обмен местами тетрад в аккумуляторе | SWAP A | 1 | 1 | 1 | (A3-0) « (A7-4) |
Таблица 24 – Группа команд операций с битами | |||||||
№ | Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
1 | Сброс переноса | CLR C | 1 | 1 | 1 | (C) 0 | |
2 | Сброс бита | CLR bit | 4 | 2 | 1 | (b) 0 | |
3 | Установка переноса | SETB C | 1 | 1 | 1 | (C) 1 | |
4 | Установка бита | SETB bit | 4 | 2 | 1 | (b) 1 | |
5 | Инверсия переноса | CPL C | 1 | 1 | 1 | (C) /(C) | |
6 | Инверсия бита | CPL bit | 4 | 2 | 1 | (b) /(b) | |
7 | Логическое И переноса и бита | ANL C, bit | 4 | 2 | 2 | (C) (C) L (b) | |
8 | Логическое И переноса и инверсии бита | ANL C,/bit | 4 | 2 | 2 | (C) (C) L ( | |
9 | Логическое ИЛИ переноса и бита | ORL C, bit | 4 | 2 | 2 | (C) (C) V (b) | |
10 | Логическое ИЛИ переноса и инверсии бита | ORL C,/bit | 4 | 2 | 2 | (C) (C) V ( | |
11 | Пересылка бита в перенос | MOV C, bit | 4 | 2 | 1 | (C) (b) | |
12 | Пересылка переноса в бит | MOV bit, C | 4 | 2 | 2 | (b) (C) |
Таблица 25 – Группа команд передачи управления | |||||||
№ | Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
1 | Длинный переход в полном объеме памяти программ | LJMP ad16 | 12 | 3 | 2 | (PC) ad16 | |
2 | Абсолютный переход внутри страницы в 2 Кбайта | AJMP ad11 | a10a9a800001 | 6 | 2 | 2 | (PC) (PC) + 2 |
(PC10-0) ad11 | |||||||
3 | Короткий относительный переход внутри страницы в 256 байт | SJMP rel | 5 | 2 | 2 | (PC) (PC) + 2 | |
(PC) (PC) + rel | |||||||
4 | Косвенный переход | JMP @A + DPTR | 1 | 1 | 2 | (PC) (A) + (DPTR) | |
5 | Переход, если аккумулятор равен нулю | JZ rel | 5 | 2 | 2 | (PC) (PC) + 2, если (A) = 0, | |
то (PC) (PC) + rel | |||||||
6 | Переход, если аккумулятор не равен нулю | JNZ rel | 5 | 2 | 2 | (PC) (PC) + 2, если (A) ¹ 0, | |
то (PC) (PC) + rel | |||||||
7 | Переход, если перенос равен единице | JC rel | 5 | 2 | 2 | (PC) (PC) + 2, если (C) = 1, | |
то (PC) (PC) + rel | |||||||
8 | Переход, если перенос равен нулю | JNC rel | 5 | 2 | 2 | (PC) (PC) + 2, если (C) = 0, | |
то (PC) (PC) + rel | |||||||
9 | Переход, если бит равен единице | JB bit, rel | 11 | 3 | 2 | (PC) (PC) + 3, если (b) = 1, | |
то (PC) (PC) + rel | |||||||
10 | Переход, если бит равен нулю | JNB bit, rel | 11 | 3 | 2 | (PC) (PC) + 3, если (b) = 0, | |
то (PC) (PC) + rel | |||||||
11 | Переход, если бит установлен, с последующим сбросом бита | JBC bit, rel | 11 | 3 | 2 | (PC) (PC) + 3, если (b) = 1, | |
то (b) 0 и (PC) (PC) + rel | |||||||
12 | Декремент регистра и переход, если не нуль | DJNZ Rn, rel | 11011rrr | 5 | 2 | 2 | (PC) (PC) + 2, (Rn) (Rn) -1, |
если (Rn) ¹ 0,то (PC)(PC) +rel | |||||||
13 | Декремент прямоадресуемого байта и переход, если не нуль | DJNZ ad, rel | 8 | 3 | 2 | (PC) (PC) + 3, (ad) (ad) -1, | |
если (ad) ¹ 0,то (PC) (PC) +rel | |||||||
14 | Сравнение аккумулятора с прямоадресуемым байтом и | CJNE A, ad, rel | 8 | 3 | 2 | (PC) (PC) + 3, если (A) ¹ (ad), | |
переход, если не равно | то (PC)(PC)+rel,если(A)< (ad), | ||||||
то (С) 1, иначе (C) 0 |
Продолжнение таблицы. 25 | |||||||
№ | Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
15 | Сравнение аккумулятора с константой и переход, | CJNE A, #D8, rel | 10 | 3 | 2 | (PC) (PC) + 3, если (A) ¹ D8, | |
если не равно | то (PC)(PC)+ rel, если(A) < D8, | ||||||
то (С) 1, иначе (C) 0 | |||||||
16 | Сравнение регистра с константой и переход, если не равно | CJNE Rn, #D8, rel | 10111rrr | 10 | 3 | 2 | (PC) (PC) + 3, если (Rn) ¹ D8, |
то (PC)(PC)+rel, если(Rn)< D8, | |||||||
то (С) 1, иначе (C) 0 | |||||||
17 | Сравнение байта в РПД с константой и переход, если не | CJNE @Ri, #D8,rel | 1011011i | 10 | 3 | 2 | (PC) (PC) + 3, если РПД(Ri)¹ |
равно | D8, то (PC) (PC) + rel, если | ||||||
РПД(Ri) < D8, то (С) 1, иначе | |||||||
(C) 0 | |||||||
18 | Длинный вызов подпрограммы | LCALL ad16 | 12 | 3 | 2 | (PC) (PC) +3, (SP) (SP) + 1, | |
РПД(SP)(PC7-0), (SP) (SP)+ | |||||||
1, РПД(SP) (PC8-15), | |||||||
(PC) ad16 | |||||||
19 | Абсолютный вызов подпрограммы в пределах страницы | ACALL ad11 | a10a9a810001 | 6 | 2 | 2 | (PC) (PC) +2, (SP) (SP) + 1, |
в 2 Кбайта | РПД(SP) (PC7-0), (SP) (SP)+ | ||||||
1, РПД(SP) (PC8-15), | |||||||
(PC) ad11 | |||||||
20 | Возврат из подпрограммы | RET | 1 | 1 | 2 | (PC15-8) РПД(SP),(SP)(SP)-1, | |
(PC7-0) РПД(SP),(SP) (SP)-1 | |||||||
21 | Возврат из подпрограммы обработки прерывания | RETI | 1 | 1 | 2 | (PC15-8) РПД(SP),(SP)(SP)-1, | |
(PC7-0) РПД(SP),(SP) (SP)-1 | |||||||
22 | Холостая команда | NOP | 1 | 1 | 1 | (PC) (PC) + 1 | |
Примечание. Ассемблер допускает использование обобщенного имени команд JMP и CALL, которые в процессе трансляции заменяются оптимальными по формату командами перехода (AJMP, SJMP, LJMP) или вызова (ACALL, LCALL). |
Все команды ОМЭВМ можно разбить на тринадцать типов/форматов (рисунок 30). Первый байт команды любого типа (формата) всегда содержит КОП. Второй и третий байты включают в себя либо адреса операндов, либо непосредственные операнды.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |



