- •Принцип проектирования микропроцессорного блока.
- •Программная модель микропроцессора Intel 8085.
- •Система команд микропроцессора
- •Особенности программирования на ассемблере.
- •Шина адреса.
- •Шина управления.
- •Особенности мп к1812вм85(intel 80185).
- •Организация микропроцессорного блока на базе микропроцессора к1810 вм86/88 (Intel 8086/88 ) Основные методы повышения производительности микропроцессоров:
- •Основные характеристики микропроцессоров:
- •Средства реализации пошагового режима.
- •Особенности организации вм88.
- •Процессорный блок на базе 8086 / 8088
- •Особенности проектирования блоков памяти в микропроцессорных устройствах.
- •Статическая память 537 ру n зу
- •Периферийные бис микропроцессорных комплектов. Обобщенная структура программируемой бис.
- •Программируемый параллельный адаптер кр580 вв55
- •Программируемый таймер кр580ви53 / ви54
- •Программируемый адаптер последовательного интерфейса кр580вв51.
- •Структурная организация программируемого адаптера последовательного интерфейса кр580вв51.
- •Программное обеспечение программируемого адаптера последовательного интерфейса кр580вв51.
- •Программируемый контроллер прерываний кр580вн59,вн59а; intel8259, 59а
- •Структура программы инициализации пкп
- •Особенности организации 1810вн59а (i8259а).
- •Микроконтроллер к1816 ве51/31(intel 8051)
- •Структура резидентной памяти данных (рпд).
- •Система команд.
- •Структура команд orl( дизъюнкция), xrl (сумма по модулю 2) аналогична предыдущей.
- •Параллельные порты.
- •Счетчик/Таймер
- •Последовательный порт
- •Подсистема прерываний
- •Особые режимы работы
Система команд микропроцессора
Команды I8080/8085 в основном одноадресные. Исключение составляют команды регистровых пересылок. Длина команды может изменяться от 1 до 3 байт. Многобайтовые команды располагаются в последовательных ячейках памяти. Первый байт команды всегда содержит код операции , а у однобайтовых команд – и информацию об источниках операндов. В двухбайтовых командах второй байт содержит непосредственный операнд или адрес порта ввода-вывода. В трехбайтовых командах второй и третий байты указывают прямой адрес операнда или непосредственный операнд. Причем второй байт содержит младший байт адреса или операнда, а третий – старший.
Для обращения к операндам используются следующие способы адресации: прямая, прямая регистровая, косвенная регистровая, непосредственная, стековая.
Форматы данных: числовые с фиксированной запятой, представленные в двоичном или двоично-десятичном кодах; логические данные.
Арифметические операции над двоично-десятичными числами поддерживаются только одной командой – командой десятичной коррекции после сложения. Необходимость коррекции обусловлена тем, что сложение двоично-десятичных чисел производится на двоичном сумматоре с использованием кода « с избытком 6». Для выполнения вычитания этих чисел необходимо сформировать дополнительный код, который образуется как ( 99 –вычитаемое +1 ), выполнить двоичное сложение, затем - командуDAA.
Длина формата – 1 или 2 байта. Число команд обработки двухбайтовых данных –12.
Недостатками системы команд являются:
малая мощность команд. Отсутствуют команды умножения, деления двоичных и двоично-десятичных чисел, арифметические и логические сдвиги, очистки регистров и так далее,
ассиметричность : определенные действия закреплены за фиксированными регистрами, различное воздействие однородных команд на флаги регистра признаков,
ограниченное количество способов адресации. Отсутствие индексного, базового, относительного способов адресации существенно усложняет программирование,
ориентация на обработку 8- и 16-разрядных данных.
Сложности при программировании связаны также с ограниченным числом регистров и их малой разрядностью, что приводит к большому количеству операций пересылок.
Эти недостатки приводят к увеличению объема памяти, необходимого для хранения программ, и времени их выполнения, так как приходится использовать подпрограммы, последовательно-параллельную обработку, большое количество пересылок.
Коды регистров и регистровых пар представлены на рис.2. В командах
условного перехода, условного обращения к подпрограмме и условного
возврата из подпрограммы используются коды условий CCC (рис.3).
+-------------------------------------------------------+
¦ Регистры ¦ Пары регистров ¦
+-----------------------+-------------------------------¦
¦ Код ¦ Имя ¦ Код ¦ Имя ¦ Регистры пары ¦
¦ (SSS|DDD) ¦ (R|R1|R2) ¦ (RP) ¦ (RP) ¦ ст. - мл. ¦
+-----------+-----------+-------+-------+-------+-------¦
¦ 000 ¦ B ¦ 00 ¦ B ¦ B ¦ C ¦
¦ 001 ¦ C ¦ ¦ ¦ ¦ ¦
¦ 010 ¦ D ¦ 01 ¦ D ¦ D ¦ E ¦
¦ 011 ¦ E ¦ ¦ ¦ ¦ ¦
¦ 100 ¦ H ¦ 10 ¦ H ¦ H ¦ L ¦
¦ 101 ¦ L ¦ ¦ ¦ ¦ ¦
¦ 110 ¦ M' ¦ 11 ¦ SP ¦ - ¦ - ¦
¦ 111 ¦ A" ¦ 11'"¦ PSW ¦ A ¦ F ¦
+-------------------------------------------------------+
') М - ячейка памяти.
") A - аккумулятор.
'") используется только в командах PUSH PSW и POP PSW
Рис. 2. Коды регистров и регистровых пар МП.
+---------------------------------------+
¦ Код ¦ Мнем. ¦ Условие ¦
¦ (CCC) ¦ (CC) ¦ (значение разряда PSW)¦
+-------+-------+-----------------------¦
¦ 000 ¦ NZ ¦ Не нуль : Z=0 ¦
¦ 001 ¦ Z ¦ Нуль : Z=1 ¦
¦ 010 ¦ NC ¦ Нет переноса : C=0 ¦
¦ 011 ¦ C ¦ Перенос : C=1 ¦
¦ 100 ¦ PO ¦ Нечетность : P=0 ¦
¦ 101 ¦ PE ¦ Четность : P=1 ¦
¦ 110 ¦ P ¦ Плюс : S=0 ¦
¦ 111 ¦ M ¦ Минус : S=1 ¦
+---------------------------------------+
Рис. 3. Коды условий для команд условного перехода.
Система команд МП содержит 78 команд, реализующих 111 операций, и
приведена в таблицах 1.1 - 1.3, в которых:
1)в мнемонических изображениях двухадресных команд приемник указывается на первом месте, а источник - на втором;
3) признаки результата (S,Z,P,C и AC) устанавливаются ТОЛЬКО при выполнении большинства арифметических и логических команд, а также команды POP PSW;
4) мнемонические обозначения команд условного перехода, условного обращения к подпрограмме и условного возврата из подпрограммы составляются из символов соответственно J,C и R и необходимой мнемоники CC из рис. 3;
5) число тактов, необходимых для исполнения команд условных перехода, обращения к подпрограмме и возврата из нее, зависит от того, выполнено (знаменатель дроби) или не выполнено (ее числитель) условие, указанное в команде;
6) в описаниях команд для обозначения содержимого аккумулятора, иного регистра или ячейки памяти, на которые указывают SSS или
DDD, используется запись (A),® или (M);
7) при записи мнемоники команды RP обозначает имя регистровой пары, а при записи кода команды - двухбитовый код регистровой пары (см. рис.2).
8) в колонке 'Код' приводится ШЕСТНАДЦАТЕРИЧНОЕ представление кода команды, если оно единственно, и ДВОИЧНОЕ - если под данной мнемоникой объединены несколько различных команд (операций); в последнем случае варьируемые разряды обозначены соответствующими символами (SSS,DDD,RP,CCC).
Список команд передачи данных Таблица 1
----------------------------- =========
+----------------------------------------------------------------------+
¦ Мнемоника ¦ Код ¦ Длина ¦ Число ¦ Выполняемая ¦
¦ ¦ ¦команды ¦ тактов¦ функция ¦
+--------------+----------+--------+-------+---------------------
¦ MOV R1,R2 ¦ 01DDDSSS ¦ 1 ¦ 5 ¦ Пересылка из R1 в R2
¦ MOV R,M ¦ 01DDD110 ¦ 1 ¦ 7 ¦ Пересылка из M в R
¦ MOV M,R ¦ 01110SSS ¦ 1 ¦ 7 ¦ Пересылка из R в M
¦ MVI R,data8 ¦ 00DDD110 ¦ 2 ¦ 7 ¦ Пересылка непосредствен
¦ ¦ ¦ ¦ ¦ ных данных в регистр
¦ MVI M,data8 ¦ 36 ¦ 2 ¦ 10 ¦ Пересылка непосредст-
¦ ¦ ¦ ¦ ¦ венных данных в память
¦ LXI B,data16¦ 01 ¦ 3 ¦ 10 ¦ Загрузка непосредст-
¦ ¦ ¦ ¦ ¦ венных данных в рег.ВС
¦ LXI D,data16¦ 11 ¦ 3 ¦ 10 ¦ Загрузка непосредственных
¦ ¦ ¦ ¦ ¦ данных в рег. пару DE
¦ LXI H,data16¦ 21 ¦ 3 ¦ 10 ¦ Загрузка непосредственных
¦ ¦ ¦ ¦ ¦ данных в рег. пару HL
¦ LXI SP,data16¦ 31 ¦ 3 ¦ 10 ¦ Загрузка непосредственных
¦ ¦ ¦ ¦ ¦ данных в указатель стека
¦ LDAX B ¦ 0A ¦ 1 ¦ 7 ¦ Косвенная загрузка A
¦ ¦ ¦ ¦ ¦ по адресу рег. пары BC
¦ LDAX D ¦ 1A ¦ 1 ¦ 7 ¦ Косвенная загрузка A
¦ ¦ ¦ ¦ ¦ по адресу рег. пары DE
¦ LHLD addr ¦ 2A ¦ 3 ¦ 16 ¦ Прямая загрузка HL
¦ LDA addr ¦ 3A ¦ 3 ¦ 13 ¦ Прямая загрузка A
¦ STAX B ¦ 02 ¦ 1 ¦ 7 ¦ Косвенная запись A в па- ¦ ¦ ¦ мять по адресу пары BC
¦ STAX D ¦ 12 ¦ 1 ¦ 7 ¦ Косвенная запись A в па-
¦ ¦ ¦ ¦ ¦ мять по адресу пары DE
¦ SHLD addr ¦ 22 ¦ 3 ¦ 16 ¦ Прямая запись HL в память
¦ STA addr ¦ 32 ¦ 3 ¦ 13 ¦ Прямая запись A в память
¦ PUSH B ¦ C5 ¦ 1 ¦ 11 ¦ Пересылка BC в стек
¦ PUSH D ¦ D5 ¦ 1 ¦ 11 ¦ Пересылка DE в стек
¦ PUSH H ¦ E5 ¦ 1 ¦ 11 ¦ Пересылка HL в стек
¦ PUSH PSW ¦ F5 ¦ 1 ¦ 11 ¦ Пересылка A и F в стек
¦ POP B ¦ C1 ¦ 1 ¦ 10 ¦ Загрузка BC из стека
¦ POP D ¦ D1 ¦ 1 ¦ 10 ¦ Загрузка DE из стека
¦ POP H ¦ E1 ¦ 1 ¦ 10 ¦ Загрузка HL из стека
¦ POP PSW ¦ F1 ¦ 1 ¦ 10 ¦ Загрузка A и F из стека
¦ XTHL ¦ E3 ¦ 1 ¦ 18 ¦ Обмен между HL и стеком
¦ XCHG ¦ EB ¦ 1 ¦ 4 ¦ Обмен между HL и DE
¦ SPHL ¦ F9 ¦ 1 ¦ 5 ¦ Пересылка HL в SP
+---------------------------------------------------------------------
Список команд управления и ввода-вывода Таблица 2
--------------------------------------- =========
+-------------------------------------------------------------------+
¦ Мнемоника ¦ Код ¦ Длина ¦ Число ¦ Выполняемая ¦
¦ ¦ ¦ команды¦ тактов¦ функция ¦
+--------------+----------+--------+-------+------------------------¦
¦ JMP addr ¦ C3 ¦ 3 ¦ 10 ¦ Безусловный переход ¦
¦ Jcc addr ¦ 11CCC110 ¦ 3 ¦ 5/10 ¦ Условный переход по ¦
¦ ¦ ¦ ¦ ¦ условию cc (рис.3) ¦
¦ PCHL ¦ E9 ¦ 3 ¦ 5 ¦ Косвенный переход по ¦
¦ ¦ ¦ ¦ ¦ адресу из HL ¦
¦ CALL addr ¦ CD ¦ 3 ¦ 17 ¦ Безуслов вызов п/прогр.¦
¦ Ccc addr ¦ 11CCC100 ¦ 3 ¦ 11/17 ¦ Условный вызов п/прогр ¦
¦ RET ¦ C9 ¦ 1 ¦ 10 ¦ Безусл. возврат из п/п ¦
¦ Rcc ¦ 11CCC000 ¦ 1 ¦ 5/11 ¦ Условный возврат из п/п¦
¦ RST n ¦ 11NNN111 ¦ 1 ¦ 11 ¦ Повторный запуск МП с ¦
¦ ¦ ¦ ¦ ¦ адреса NNN*8 ¦
¦ EI ¦ FB ¦ 1 ¦ 4 ¦ Разрешение прерывания ¦
¦ DI ¦ F3 ¦ 1 ¦ 4 ¦ Запрещение прерывания ¦
¦ HLT ¦ 76 ¦ 1 ¦ 7 ¦ Останов ¦
¦ NOP ¦ 00 ¦ 1 ¦ 4 ¦ Нет операции ¦
¦ IN port ¦ DB ¦ 2 ¦ 10 ¦ Ввод данных из порта в A
¦ OUT port ¦ D3 ¦ 2 ¦ 10 ¦ Вывод данных из A в порт
+--------------------------------------------------------------------
Список арифметических команд Таблица 3
---------------------------- =========
+----------------------------------------------------------------------+
¦ Мнемоника ¦ Код ¦ Приз- ¦Длина ¦Число ¦ Выполняемая ¦
¦ ¦ ¦ наки ¦команды¦тактов¦ функция ¦
+-----------+--------+-------+------+------+------------------------¦
¦ INR R ¦00DDD100¦ SZAСP-¦ 1 ¦ 5 ¦ Инкремент регистра R ¦
¦ INR M ¦ 34 ¦ SZAСP-¦ 1 ¦ 10 ¦ Инкремент памяти M ¦
¦ INX RP ¦00RP0011¦ ------¦ 1 ¦ 5 ¦ Инкремент регистровой ¦
¦ ¦ ¦ ¦ ¦ ¦ пары RP ¦
¦ DCR R ¦00DDD101¦ SZAСP-¦ 1 ¦ 5 ¦ Декремент регистра R ¦
¦ DCR M ¦ 25 ¦ SZAСP-¦ 1 ¦ 10 ¦ Декремент памяти M ¦
¦ DCX RP ¦00RP1011¦ ------¦ 1 ¦ 5 ¦ Декремент регистровой ¦
¦ ¦ ¦ ¦ ¦ ¦ пары RP ¦
¦ ADD R ¦10000SSS¦ SZAСPC¦ 1 ¦ 4 ¦ Сложение A и R ¦
¦ ADD M ¦ 86 ¦ SZAСPC¦ 1 ¦ 7 ¦ Сложение A и M ¦
¦ ADI data8¦ C6 ¦ SZAСPC¦ 2 ¦ 7 ¦ Сложение A и непосредст-
¦ ¦ ¦ ¦ ¦ ¦ венных данных ¦
¦ ADC R ¦10001SSS¦ SZAСPC¦ 1 ¦ 4 ¦ Слож. A и R с переносом¦
¦ ADC M ¦ 8E ¦ SZAСPC¦ 1 ¦ 7 ¦ Слож. A и M с переносом¦
¦ ACI data8¦ CE ¦ SZAСPС¦ 2 ¦ 7 ¦ Слож. A и непосредст- ¦
¦ ¦ ¦ ¦ ¦ ¦ венных данных с переносом¦
¦ SUB R ¦10010SSS¦ SZAСPС¦ 1 ¦ 4 ¦ Вычитание R из A ¦
¦ SUB M ¦ 96 ¦ SZAСPC¦ 1 ¦ 7 ¦ Вычитание M из A ¦
¦ SUI data8¦ D6 ¦ SZAСPС¦ 2 ¦ 7 ¦ Вычитание
¦ ¦ ¦ ¦ ¦ ¦ непосредств.данных из A¦
¦ SBB R ¦10011SSS¦ SZAСPC¦ 1 ¦ 4 ¦ Вычитание R из A с заемом
¦ SBB M ¦ 9E ¦ SZAСPC¦ 1 ¦ 7 ¦ Вычитание M из A с заемом
¦ SBI data8¦ DE ¦ SZAСPC¦ 2 ¦ 7 ¦ Вычит. непосредственных
¦ ¦ ¦ ¦ ¦ ¦ данных из A с заемом
¦ DAD RP ¦00RP1001¦ ----C ¦ 1 ¦ 10 ¦ Сложение регистровых пар
¦ ¦ ¦ ¦ ¦ ¦ HL и RP
¦ ANA R ¦10100SSS¦ SZAСP0¦ 1 ¦ 4 ¦ Логическое И A и R
¦ ANA M ¦ A6 ¦ SZAСP0¦ 1 ¦ 7 ¦ Логическое И A и M
¦ ANI data8¦ E6 ¦ SZAСP0¦ 2 ¦ 7 ¦ Логическ.И A и непосред-
¦ ¦ ¦ ¦ ¦ ¦ ственных данных
¦ XRA R ¦10101SSS¦ SZAСP0¦ 1 ¦ 4 ¦ Исключающее ИЛИ A и R
¦ XRA M ¦ AE ¦ SZAСP0¦ 1 ¦ 7 ¦ Исключающее ИЛИ A и M
¦ XRI data8¦ EE ¦ SZAСP0¦ 2 ¦ 7 ¦ Исключающее ИЛИ A и непос
¦ ¦ ¦ ¦ ¦ ¦ редственных данных
¦ ORA R ¦10110SSS¦ SZAСP0¦ 1 ¦ 4 ¦ Логическое ИЛИ A и R
¦ ORA M ¦ B6 ¦ SZAСP0¦ 1 ¦ 7 ¦ Логическое ИЛИ A и M
¦ ORI data8¦ F6 ¦ SZAСP0¦ 2 ¦ 7 ¦ Логическое ИЛИ A и непос
¦ ¦ ¦ ¦ ¦ ¦ редственных данных
¦ CMP R ¦10111SSS¦ SZ0PС ¦ 1 ¦ 4 ¦ Сравнение A и R (A-R)
¦ CMP M ¦ BE ¦ SZ0PС ¦ 1 ¦ 7 ¦ Сравнение A и M (A-M)
¦ CPI data8¦ FE ¦ SZ0PС ¦ 2 ¦ 7 ¦ Сравнение A и непосредст
¦ ¦ ¦ ¦ ¦ ¦ венных данных (A-data8)
¦ RLC ¦ 07 ¦ ----C ¦ 1 ¦ 4 ¦ Циклич. сдвиг A влево
¦ RRC ¦ 0F ¦ ----C ¦ 1 ¦ 4 ¦ Циклич. сдвиг A вправо
¦ RAL ¦ 17 ¦ ----C ¦ 1 ¦ 4 ¦ Циклич. сдвиг A влево
¦ ¦ ¦ ¦ ¦ ¦ через бит C
¦ RAR ¦ 1F ¦ ----C ¦ 1 ¦ 4 ¦ Циклич. сдвиг A вправо
¦ ¦ ¦ ¦ ¦ ¦ через бит C
¦ DAA ¦ 27 ¦ SZAPC ¦ 1 ¦ 4 ¦ Десятичная коррекция A
¦ CMA ¦ 2F ¦ ----- ¦ 1 ¦ 4 ¦ Инвертирование A
¦ STC ¦ 37 ¦ ----1 ¦ 1 ¦ 4 ¦ Установка бита C
¦ CMC ¦ 3F ¦ ----C ¦ 1 ¦ 4 ¦ Инвертирование бита C
+-------------------------------------------------------------------
Опеpации Ввода / Вывода пpоизводятся с содеpжимым аккумулятоpа.
Логические опеpации и аpифметические опеpации один из источников
опеpанда используют аккумулятоp с последующим помещением pезультата
в аккумулятоp.