|
Архитектура и структурная организация ОМК
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Брянский государственный технический университет
Утверждаю
Ректор университета
_________________А.В. Лагерев
«___»____________2006 г.
Новые информационные технологии: Программирование мобильных и встраиваемых систем
ИсСЛЕДОВАНИЕ СИСТЕМЫ КОМАНД И АДРЕСНОГО ПРОСТРАНСТВА МИКРОКОНТРОЛЛЕРА С ПОМОЩЬЮ ЭМУЛЯТОРА
Методические указания к выполнению лабораторной работы №1 для студентов 5 курса специальности 220400 «Программное обеспечение вычислительной техники и автоматизированных систем»
Брянск 2006
УДК 004.031.6:004.23.001.85(076)
Новые информационные технологии: Программирование мобильных и встраиваемых систем. Исследование системы команд и адресного пространства микроконтроллера с помощью эмулятора. Методические указания к выполнению лабораторной работы №1 для студентов 5 курса специальности 220400 «Программное обеспечение вычислительной техники и автоматизированных систем». – Брянск БГТУ, 2006. – 13 с.
Разработал:
М.Л. Потапов,
канд.техн.наук, доц.
Рекомендовано кафедрой «Информатика и программное обеспечение» БГТУ (протокол № 8 от 15 мая 2006 г.)
Цель и задачи работы
Целью данной работы является исследование системы команд и адресного пространства микроконтроллеров серий Intel 8051, Atmel MSC-51, МК-51, а также освоение инструментального средства быстрой разработки и отладки программного обеспечения для микроконтроллеров этого семейства кроссассемблера-эмулятора Single-Chip Machine 2.
Задачи работы:
1. Изучение структуры памяти и адресного пространства микроконтроллера КР1816ВЕ31 как представителя семейства МК-51;
2. Ознакомление с основными регистрами и системой команд;
3. Получение начальных навыков по работе с эмулятором микроконтроллеров семейства МК-51 программным комплексом Single-Chip Machine 2.
Продолжительность работы 2 часа.
Краткие теоретические сведения
Архитектура и структурная организация ОМК
Однокристальные микроконтроллеры (ОМК) имеют на одном кристалле полный набор средств ЭВМ: центральный процессор (ЦП), память, подсистему ввода-вывода(ВВ), средства поддержки режима реального времени (РВ). Интеграция всех составных частей микроЭВМ на одном кристалле внесло ряд ограничений на принципы ее организации, потребовала новых решений в развитии ее архитектуры, не свойственных многокристальным компоновкам. В результате был получен новый класс микроконтроллеров (МК) с присущими только ему принципами.
Период становления архитектуры 8-разрядных ОМК относят к 1976-1979 г., когда развернулась острая конкурентная борьба между тремя фирмами, выпустившими первые приборы этого класса: 8048 (Intel), 3870 (Mostek), 9940 (Texas Instrumens). Одни из них (3870, 9940) программно совместимы с многокристальными системами и во многом дублируют их архитектурные решения, другие (8048) имели оригинальную организацию. В процессе этой борьбы и дальнейших усовершенствований были сформулированы основные принципы организации МК на одном кристалле, ставшие стандартными.
Логическим завершением развития 8-разрядных МК стало семейство iMCS-51, уже более 20 лет остающееся одним из самых актуальных на рынке встраиваемых систем. Различными зарубежными фирмами выпускается множество ОМК, архитектурно совместимых с семейством iMCS-51, например, ОЭВМ 5000 фирмы Dallas Semiconductor, а также получившее наибольшее распространение за счет беспрецедентно низких цен и высокой надежности семейство MCS-51 фирмы Atmel.
Отечественная промышленность также выпускает микроконтроллеры семейства МК51, полностью совместимые с iMCS-51. Семейство МК51 включает несколько модификаций, основное различие между которыми состоит в реализации памяти программ и мощности потребления. Приборы серии КР1816 построены по n-МОП, а серии КР1830 – по более современной КМОП-технологии.
Все микроконтроллеры семейства МК51 содержат встроенное ОЗУ памяти данных емкостью 128 байт с возможностью расширения общего объема памяти данных до 64Кбайт за счет использования внешних микросхем.
КР1816ВЕ51 и КР1830ВЕ51 содержат масочно-программируемое в процессе изготовления кристалла ПЗУ памяти программ емкостью 4096 байт и рассчитаны на применение в массовой продукции. За счет использования внешних микросхем памяти общий объем памяти программ может быть расширен до 64Кбайт.
КМ1816ВЕ751 содержит РПЗУ емкостью 4096 байт со стиранием ультрафиолетовым излучением и удобна на этапе разработки системы при отладке программ, а также при производстве небольшими партиями или при создании систем, требующих в процессе эксплуатации периодической подстройки.
КР1816ВЕ31 и КР1830ВЕ31 не содержат встроенной памяти программ, однако могут использовать до 64 Кбайт внешней постоянной или перепрограммируемой памяти программ и эффективно использоваться в системах, требующих существенно большего по объему ( чем 4 Кбайта на кристалле) ПЗУ памяти программ.
Каждая из перечисленных выше микросхем является соответственно аналогом БИС 8051, 80С51, 8751, 8031, 80С31 семейства iMCS-51 фирмы Intel.
Структурная схема контроллера МК-51 представлена на рис.1 и включает в себя следующие основные функциональные узлы:
Рис. 1.
1. ЦП, включающий в себя блок управления (БУ) и АЛУ;
2. память данных и память программ;
3. систему прерываний с пятью векторами и двумя уровнями;
4. четыре восьмиразрядных программируемых канала ввода-вывода (Р0-Р3);
5. два 16-разрядных многорежимных таймера/счетчика;
6. последовательный интерфейс (ПИП).
Двусторонний обмен информацией между функциональными блоками осуществляется с помощью внутренней 8-разрядной магистрали данных (Bus D), доступ к внешней памяти – с помощью 16-разрядной шины адреса/данных (Bus A).
Организация памяти МК-51
Подавляющее большинство микроконтроллеров, в том числе все представители семейства iMCS-51, построены по гарвардской архитектуре с раздельной адресацией памяти команд и памяти данных. Это связано с тем, что задачи управления устройствами, в которых, как правило, задействованы ОМК, не требуют большой оперативной памяти (достаточно несколько десятков байт), в то время, как типичная потребность в памяти программ и констант – от нескольких сотен байт до нескольких десятков килобайт. Разделение памяти на части позволяет подобрать оптимальную разрядность адресации, и тем самым сократить длину команд и размер получающегося кода. Однако, при увеличенном размере программного кода или массивов данных микроконтроллер МК-51 позволяет расширить область адресуемой памяти до 2х64 кБайт. Варианты распределения адресного пространства приведены на рис.2.
Объем внутренней (резидентной) памяти программ (ROM, EPROM или OTP ROM), располагаемой на кристалле, в зависимости от типа микросхемы может составлять 0 (ROMless), 4К (базовый кристалл), 8К, 16К или 32К. При необходимости пользователь может расширять память программ установкой внешнего ПЗУ. Доступ к внутреннему или внешнему ПЗУ определяется значением сигнала DEMA.
Область нижних адресов памяти программ используется системой прерываний, архитектура микросхемы 8051 обеспечивает поддержку пяти источников прерываний.
- двух внешних прерываний;
- двух прерываний от таймеров;
- прерывания от последовательного порта.
Адреса векторов прерываний расположены по адресам:
- 0003Н – внешнее прерывание 0 – вывод INT0;
- 000BН – прерывание от таймера 0 (по флагу переполнения таймера – TF0);
- 0013Н – внешнее прерывание 1 – вывод INT1;
- 001BH – прерывание от таймера 1 (по флагу переполнения таймера – TF0);
- 0023H – прерывание от последовательного порта.
Рис.2. Пространство памяти МК51
Нижние 128 байт внутренней памяти данных (lower 128) присутствуют на всех кристаллах MCS-51 и показаны на рис.3.
7FH
30H
| Побайтно-адресуемая область ОЗУ
| 2FH
| 7FH
| 7EH
| 7DH
| 7CH
| 7BH
| 7AH
| 79H
| 78H
| 2EH
| 77H
| 76H
| 75H
| 74H
| 73H
| 72H
| 71H
| 70H
| 2FH
20H
| Побитно-адресуемая область ОЗУ
| 21H
| 0FH
| 0EH
| 0DH
| 0CH
| 0BH
| 0AH
| 09H
| 08H
| 20H
| 07H
| 06H
| 05H
| 04H
| 03H
| 02H
| 01H
| 00H
| 1FH
18H
| RB3 (R0 – R7)
| 17H
10H
| RB2
| 1FH
00H
| Банки регистров RB0 – RB3
| 0FH
08H
| RB1
| 07H
00H
| SP после RESET
RB0 (R0 – R7)
| | | | | | | | | | | |
Рис.3. Нижние 128 байт внутреннего ОЗУ.
Первые 32 байта представляют собой 4 банка (Register Bank) по 8 регистров (R7...R0). Регистры R0 и R1 в любом из банков могут использоваться в качестве регистров косвенного адреса.
Следующие за регистровыми банками 16 байт образуют блок побитно-адресуемого пространства. Набор инструкций MCS-51 содержит широкий выбор операций над битами, а 128 бит в этом блоке адресуются прямо и адреса имею значения от 00Н до 7FH.
Все байты в нижней 128-байтной половине памяти могут адресоваться как прямо, так и косвенно.
Верхняя 128 байтная половина памяти ОЗУ (upper 128) доступна только при косвенной адресации. Часть ячеек этой области проецируется в т.н. область SFR (Special Function Register), включающей в себя все специальные регистры микроконтроллера. Область SFR доступна только при прямой адресации.
Размещение регистров специальных функций в пространстве SFR показано на рис.4.
F8H
|
|
|
|
|
|
|
|
| FFH
| F0H
| B
|
|
|
|
|
|
|
| F7H
| E8H
|
|
|
|
|
|
|
|
| EFH
| E0H
| ACC
|
|
|
|
|
|
|
| E7H
| D8H
|
|
|
|
|
|
|
|
| DFH
| D0H
| PSW
|
|
|
|
|
|
|
| D7H
| C8H
|
|
|
|
|
|
|
|
| CFH
| C0H
|
|
|
|
|
|
|
|
| C7H
| B8H
| IP
|
|
|
|
|
|
|
| BFH
| B0H
| P3
|
|
|
|
|
|
|
| B7H
| A8H
| IE
|
|
|
|
|
|
|
| AFH
| A0H
| P2
|
|
|
|
|
|
|
| A7H
| 98H
| SCON
| SBUF
|
|
|
|
|
|
| 9FH
| 90H
| P1
|
|
|
|
|
|
|
| 97H
| 88H
| TCON
| TMOD
| TL0
| TL1
| TH0
| TH1
|
|
| 8FH
| 80H
| P0
| SP
| DPL
| DPH
|
|
|
| PCON
| 87H
| Рис. 4. Размещение регистров специальных функций в пространстве SFR.
Для 16 адресов в пространстве SFR имеется возможность как байтовой, так и битовой адресации. Для побитно-адресуемых регистров шестнадцатеричный адрес заканчивается на "0Н" или на "8Н". Битовые адреса в этой области имеют значения от 80Н до FFH.
Вся серия кристаллов семейства MCS-51 имеет базовый набор SFR, как и в микросхеме i8051, расположенный по тем же адресам. Однако в кристаллах, представляющих собой дальнейшее развитие семейства в область SFR, добавляются новые регистры для расширения функциональных возможностей, например, таймер 2, матрица программируемых счетчиков (Programmable Counter Array - PCA), сторожевой таймер (Watchdog Timer - WDT), регистры, обслуживающие прямой доступ к памяти, аналого-цифровое преобразование, коммуникационный последовательный канал и так далее.
Назначение регистров области SFR и отдельных битов этих регистров приведены ниже.
Аккумулятор А (ACC, Accumulator, адрес E0H).
Команды архитектуры MCS-51 используют аккумулятор как источник и как приемник при вычислениях и пересылках. Кроме обращения к аккумулятору командами, использующими мнемонику "А", имеется возможность побитовой или побайтовой адресации, как SFR-регистра.
Регистр В (Multiplication Register, адрес F0H).
Регистр В используется как источник и как приемник при операциях умножения и деления, обращение к нему, как к регистру SFR, производится аналогично аккумулятору.
Слово состояния программы PSW (Program Status Word, адрес D0H).
Данный регистр содержит биты, отражающие результаты исполнения операций, биты выбора регистрового банка и бит общего назначения, доступный пользователю. PSW отображен на область SFR и содержит:
- PSW.7 – бит переноса (Carry Flag, CY);
- PSW.6 – бит вспомогательного переноса (Auxiliary Carry Flag, AC);
- PSW.5 – пользовательский флаг (General Purpose Status Flag, F0);
- PSW.4, PSW.3 – биты выбора регистрового банка (Register Bank Select Bits, RS1 и RS0);
- PSW.2 – бит переполнения (Overflow Flag, OV);
- PSW.1 – зарезервирован (Reserved);
- PSW.0 – бит четности (Parity Flag, P).
Битами RS1, RS0 выбираются ячейки памяти, которые будут служить активным банком регистрового файла (регистры R0+R7).
RS1
| RS0
| Банк
| Адрес
|
|
|
| 00Н+07Н
|
|
|
| 08Н+0FH
|
|
|
| 10H+17H
|
|
|
| 18H+1FH
| Регистры портов Р0+Р3 (адреса 80Н, 90Н, А0Н, В0Н).
Каждый порт является фиксатором - защелкой и может адресоваться как побайтно, так и побитно. Помимо работы в качестве обычных портов ввода/вывода, линии портов могут выполнять ряд альтернативных функций:
- через порт 0 (в мультиплексном режиме) выводится младший байт адреса, а также выдается и принимается в микроконтроллер байт данных при работе с внешней памятью программ/данных. Задаются данные при программировании внутренней памяти программ и читается ее содержимое;
- порт 1 предназначен для задания младшего байта адреса при программировании и проверке ПЗУ микросхемы. Линии порта используются также для обслуживания работы Т/С2 и модуля PCA (для тех версий кристаллов MCS-51, в составе которых имеются эти функциональные узлы);
- через порт 2 выводится байт старший байт адреса внешней памяти программ и данных, а также задаются старшие разряды адреса при программировании и верификации УФРПЗУ;
- порт 3 имеет следующие альтернативные функции:
- Р3.7 - строб чтения из внешней памяти данных (Read Data for External Memory, RD);
- P3.6 - строб записи во внешнюю память данных (WD);
- P3.5 - внешний вход T/C1 (Timer/Counter 1 External Input, T1);
- P3.4 - внешний вход T/C0 (Timer/Counter 0 External Input, T0);
- P3.3 - вход внешнего прерывания 1 (External Interrupt 1 Input Pin, INT1);
- P3.2 - вход внешнего прерывания 0 (INT0);
- P3.1 - выход данных передатчика последовательного порта (Serial Port Transmit Pin, TxD);
- P3.0 - вход данных передатчика последовательного порта (Serial Port Receive Pin, RxD).
Указатель стека SP (Stack Pointer, адрес 81Н).
Используется для указания на вершину стека в операциях записи в стек и чтения из него. Неявно используется такими командами, как PUSH, RET, RETI, POP. По аппаратному сбросу от ЦП устанавливается в значение 07Н (область стека в этом случае начинается с адреса внутренней памяти данных 08Н) и инкрементируется при каждой записи в стек. Запись в SFR-регистр SP (с использованием байтовой адресации) производится для предопределения положения стека во внутренней памяти данных.
Указатель данных DPTR (Data Pointer, адреса 82Н, 83Н).
Команды архитектуры MCS-51 используют DPTR для пересылки данных, пересылки кода и для переходов (JMP@A+DPTR). DPTR состоит из двух регистров: младшего - DPL и старшего - DPH, обращение к ним - только байтовое.
Регистр управления энергопотреблением PCON (Power Control Register, адрес 87Н).
Для кристаллов, выполненных по nМОП-технологии, данный регистр имеет только один значащий бит - SMOD, управляющий скоростью работы последовательного порта. Для кристаллов, изготовленных по КМОП-технологии, PCON имеет следующее назначение битов:
- PCON.7 - бит удвоения скорости передачи (Double Baud Rate Bit, SMOD);
- PCON.6+PCON.4 - зарезервированы (Reserved);
- PCON.3, PCON.2 - флаги общего назначения (General Purpose Flags, GF1, GF0);
- PCON.1 - бит режима микропотребления (Power Down Bit, PD);
- PCON.0 - бит холостого режима (Idle Mode Bit, IDL).
При установке холостого режима производится отключение ЦП при сохранении работоспособности внутрикристальных периферийных устройств и ОЗУ.
В режиме микропотребления приостанавливаются все операции при сохранении данных в ОЗУ (потребление тока микроконтроллером в этом случае менее 10 мкА). Выход из режима микропотребления осуществляется аппаратным сбросом длительностью не менее 10 мс (время восстановления работы задающего генератора), выход из холостого режима может быть произведен активизацией любого разрешенного прерывания, либо по сигналу RESET длительностью не менее двух машинных циклов.
Буфер последовательного порта SBUF (Serial Data Buffer, адрес 99Н).
Регистр управления последовательным портом SCON (Serial Port Control Register, адрес 98Н)
Последовательный порт ввода-вывода обеспечивает синхронный и асинхронный режимы связи и предназначен для поддержки взаимодействия микроконтроллера с модемами и другими внешними устройствами. Он работает как универсальный асинхронный приемопередатчик (UART) в трех полнодуплексных режимах (режимы 1, 2 и 3), причем асинхронная передача и прием могут вестись одновременно и с одинаковой или разной скоростью. Блок UART поддерживает обнаружение однобитовых ошибок кадра передачи, мультипроцессорный обмен и автоматическое распознавание адреса. Последовательный порт работает также и в синхронном режиме (режиме 0).
В состав UART входят передающий и принимающий сдвигающие регистры, буфер приемника и передатчика SBUF и блок управления работой порта с регистром управления SCON. Запись байта в буфер приводит к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи. Наличие буферного регистра приемника позволяет совмещать операцию чтения из SBUF ранее принятого байта с приемом очередного.
Регистры таймеров/счетчиков TL0, TL1, TH0, TH1 (адреса 8АН, 8ВН, 8СН, 8DH).
Образуют 16-битные (Low/High) регистры таймеров/счетчиков "Т/C0" и "Т/C1". Обращение к регистрам только байтовое. Подробно описаны в подразделе "Организация таймеров/счетчиков".
Регистр режима таймеров/счетчиков TMOD (Timer/Counter Mode Control Register, адрес 89Н).
Регистр управления таймеров/счетчиков TCON (Timer/Counter Control Register, адрес 88Н).
Предназначены для управления работой таймерной секции микроконтроллера.
Регистр разрешения прерываний IE (Interrupt Enable Register, А8Н).
Регистр управления приоритетом прерывания IP (Interrupt Priority Control Register, адрес В8Н).
Поддерживают работу системы прерываний микроконтроллера. Подробное описание работы с регистрами дано в подразделе "Организация прерываний".
Система команд МК51
Система команд МК51 содержит 111 базовых команд, которые удобно разделить по функциональному признаку на пять групп: команды передачи данных, арифметических операций, логических операций, операций передачи управления и операций с битами.
Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла. При тактовой частоте 12 МГц длительность машинного цикла составляет 1 мкс.
Ниже приведены 13 типов команд МК51. Первый байт команды всегда содержит код операции (КОП). Второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.
D7...D0
1. КОП (NOP, RR A, INC A.)
D7...D0
2. КОП #d (MOV R0,#FFh)
3. КОП ad (MOV R0, 21h)
4. КОП bit (CPL 1Fh)
5. КОП rel (SJMP J1)
6. A+КОП A7...A0 (AJMP J2)
D7...D0
7. КОП ad #d (M0V 21h, #Afh)
8. КОП ad rel (DJNZ 21h, J3)
9. КОП ads add (MOV 48h, 45h)
10. КОП #d rel (CJNE A, #Bfh, J4)
11. КОП bit rel (JB E2, J5)
12. КОП ad16h ad16l (LCALL START)
13. КОП #d16h #d16l (MOV DPTR, #1234h)
В таблице 1 приведена система команд микроЭВМ семейства МК51.
Таблица 1.
7-4\ 3-0
| 0000(0)
| 0001(1)
| 0010(2)
| 0011(3)
| 0100(4)
| 0101(5)
| 0110(6)
| 0111(7)
| 0000(0)
| NOP
| AJMP addr
| LJMP addr
| RR A
| INC A
| INC direct
| INC @R0
| INC @R1
| 0001(1)
| JBC bit, adr
| ACALL addr
| LCALL addr
| RRC A
| DEC A
| DEC direct
| DEC @ R0
| DEC @ R1
| 0010(2)
| JB bit,addr
| AJMP addr
| RET
| RL A
| ADD A,#data
| ADD A, drct
| ADD A,@R0
| ADD A,@R1
| 0011(3)
| JNB bit,addr
| ACALL addr
| RETI
| RLC A
| ADDC A,#data
| ADDC A, drct
| ADDC A,@R0
| ADDC A,@R1
| 0100(4)
| JC addr
| AJMP addr
| ORL drct, A
| ORL drct,#d
| ORL A, #data
| ORL A, #direct
| ORL A, @R0
| ORL A, @R1
| 0101(5)
| JNC addr
| ACALL addr
| ANL drct,A
| ANL drct,#d
| ANL A,#data
| ANL A,#drct
| ANL A , @R0
| ANL A , @R1
| 0110(6)
| JZ addr
| AJMP addr
| XRL drct, A
| XRL drct, #d
| XRL A, #data
| XRL A, #direct
| XRL A, @R0
| XRL A, @R1
| 0111(7)
| JNZ addr
| ACALL addr
| ORL C, bit
| JMP@A+DPTR
| MOV A,#data
| MOV drct,#d
| MOV @R0,#d
| MOV @R1,#d
| 1000(8)
| SJMP addr
| AJMP addr
| ANL C,bit
| MOVC A,@A+PC
| DIV AB
| MOV direct, direct
| MOV direct, @R0
| MOV direct, @R1
| 1001(9)
| MOV DPTR, #data
| ACALL addr
| MOV bit, C
| MOVC A,@A+ DPTR
| SUBB A,#data
| SUBB A, drct
| SUBB A,@R0
| SUBB A,@R1
| 1010(A)
| ORL C, / bit
| AJMP addr
| MOV C, bit
| INC DPTR
| MUL AB
|
| MOV @R0, direct
| MOV @R1, direct
| 1011(B)
| ANL C, / bit
| ACALL addr
| CPL bit
| CPL C
| CJNE A, #d, addr
| CJNE A, drct, addr
| CJNE @R0, #d,addr
| CJNE @R1, #d,addr
| 1100(C)
| PUSH direct
| AJMP addr
| CLR bit
| CLR C
| SWAP A
| XCH A,#drct
| XCH A,@R0
| XCH A,@R1
| 1101(D)
| POP direct
| ACALL addr
| SETB bit
| SETB C
| DA A
| DJNZ drct,adr
| XCHD A,@R0
| XCHD A,@R1
| 1110(E)
| MOVX @DPTR, A
| AJMP addr
| MOVX A, @R0
| MOVX A, @R1
| CLR A
| MOV A, direct
| MOV A, @R0
| MOV A, @R1
| 1111(F)
| MOVX @DPTR,A
| ACALL addr
| MOVX @R0,A
| MOVX @R1,A
| CPL A
| MOV direct,A
| MOV @R0,A
| MOV @R1,A
| 7-4\ 3-0
| 1000(8)
| 1001(9)
| 1010(A)
| 1011(B)
| 1100(C)
| 1101(D)
| 1110(E)
| 1111(F)
| 0000(0)
| INC R0
| INC R1
| INC R2
| INC R3
| INC R4
| INC R5
| INC R6
| INC R7
| 0001(1)
| DEC R0
| DEC R1
| DEC R2
| DEC R3
| DEC R4
| DEC R5
| DEC R6
| DEC R7
| 0010(2)
| ADD A, R0
| ADD A, R1
| ADD A, R2
| ADD A, R3
| ADD A, R4
| ADD A, R5
| ADD A, R6
| ADD A, R7
| 0011(3)
| ADDC A, R0
| ADDC A, R1
| ADDC A, R2
| ADDC A, R3
| ADDC A, R4
| ADDC A, R5
| ADDC A, R6
| ADDC A, R7
| 0100(4)
| ORL A, R0
| ORL A, R1
| ORL A, R2
| ORL A, R3
| ORL A, R4
| ORL A, R5
| ORL A, R6
| ORL A, R7
| 0101(5)
| ANL A, R0
| ANL A, R1
| ANL A, R2
| ANL A, R3
| ANL A, R4
| ANL A, R5
| ANL A, R6
| ANL A, R7
| 0110(6)
| XRL A, R0
| XRL A, R1
| XRL A, R2
| XRL A, R3
| XRL A, R4
| XRL A, R5
| XRL A, R6
| XRL A, R7
| 0111(7)
| MOV R0, #d
| MOV R1, #d
| MOV R2, #d
| MOV R3, #d
| MOV R4, #d
| MOV R5, #d
| MOV R6, #d
| MOV R7, #d
| 1000(8)
| MOV drct,R0
| MOV drct,R1
| MOV drct,R2
| MOV drct,R3
| MOV drct,R4
| MOV drct,R5
| MOV drct,R6
| MOV drct,R7
| 1001(9)
| SUBB A, R0
| SUBB A , R1
| SUBB A , R2
| SUBB A , R3
| SUBB A , R4
| SUBB A , R5
| SUBB A , R6
| SUBB A , R7
| 1010(A)
| MOV R0,drct
| MOV R1,drct
| MOV R2,drct
| MOV R3,drct
| MOV R4,drct
| MOV R5,drct
| MOV R6,drct
| MOV R7,drct
| 1011(B)
| CJNE R0, #d, addr
| CJNE R1, #d, addr
| CJNE R2, #d, addr
| CJNE R3, #d, addr
| CJNE R4, #d, addr
| CJNE R5, #d, addr
| CJNE R6, #d, addr
| CJNE R7, #d, addr
| 1100(C)
| XCH A, R0
| XCH A, R1
| XCH A, R2
| XCH A, R3
| XCH A, R4
| XCH A, R5
| XCH A, R6
| XCH A, R7
| 1101(D)
| DJNZ R0,addr
| DJNZ R1,addr
| DJNZ R2,addr
| DJNZ R3,addr
| DJNZ R4,addr
| DJNZ R5,addr
| DJNZ R6,addr
| DJNZ R7,addr
| 1110(E)
| MOV A, R0
| MOV A, R1
| MOV A, R2
| MOV A, R3
| MOV A, R4
| MOV A, R5
| MOV A, R6
| MOV A, R7
| 1111(F)
| MOV R0, A
| MOV R1, A
| MOV R2, A
| MOV R3, A
| MOV R4, A
| MOV R5, A
| MOV R6, A
| MOV R7, A
| Для адресации бит используется прямой 8-битный адрес. Косвенная адресация бит невозможна. 4-битные операнды используются только при операциях обмена (команды SWAP и XCHD). 8-битным операндом может быть ячейка памяти программ или данных, константа, регистры специальных функций и порты ввода-вывода. Порты и SFR адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры (R0, R1, DPTR, PC). Двухбайтные операнды - это константы и прямые адреса, для представления которых используются 2 и 3 байты команд.
Набор команд MК-51 поддерживает следующие режимы адресации.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|