Представление команд в числовой форме

ВВЕДЕНИЕ

Настоящее учебное пособие по циклу лабораторных работ построено на базе теоретического курса. В нём подробно представлена архитектура микропроцессора 8080, дана структурная схема, описаны его состояния и типовые машинные циклы.

Для лучшего освоения особенностей программирования интерфейсных микросхем, которым посвящены лабораторные работы раздела 3, в курсе лекций можно найти информацию об общих принципах построения механизма прерываний микро-ЭВМ, об организации временных задержек, о способах организации обмена с внешними устройствами. Там также более подробно представлены микросхемы типовых интерфейсов (контроллер прерываний 8259, таймер 8253, параллельный интерфейс 8255).

В курсе лекций более подробно рассмотрен микроконтроллер семейства MCS-51, который программируется в лабораторных работах раздела 4. Даны архитектурные особенности микроконтроллера, описание системы команд, механизма прерываний, средств связи и др. Этот материал поможет при выполнении соответствующих лабораторных работ.

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

Применяемые при выполнении лабораторных работ компьютерные программные средства автоматизации программирования снабжены документацией (электронный файл), средствами контекстной помощи, а также имеют интуитивно понятный интерфейс.

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

Имеется (Internet) много бесплатных программ симуляторов микропроцессора 8080 или родственных с ним процессоров 8085 или Z80. Рекомендуется их применять на первых этапах обучения программированию. С их помощью можно работать с программами лабораторных работ № 2 и № 3.

Для программирования в симуляторе микроконтроллера семейства MCS-51 можно использовать симулятор, поставляемый вместе с эмулятором в составе учебно-отладочного комплекса. Он не пригоден для работы № 11.

 

Система команд микропроцессора 8080

Представление команд в числовой форме

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

Таблица 1.1

Форматы команд

Адрес Биты байта Обозн Назначение байта
Формат однобайтной команды
Adr D7...0 B1 Код операции
Формат двухбайтной команды
Adr D7..0 B1 Код операции
Adr+1 D7..0 B2 Байт данных или адреса
Формат трёхбайтной команды
Adr D7..0 B1 Код операции
Adr+1 D7..0 B2 Младший байт числа данных или адреса
Adr+2 D7..0 B3 Старший байт числа данных или адреса

В коде операции 8-битной двоичной комбинацией определяются действия процессора, предписываемые командой. Кроме того, в некоторых кодах операций указываются также операнды, с которыми должны выполняться действия. Делается это через указание на регистры процессора, содержащие операнд или его адрес согласно табл. 1.2.

Таблица 1.2

Кодирование регистров в коде операции

Регистр или память M(HL)
Имя Код Номер
B 0 0 0
C 0 0 1
D 0 1 0
E 0 1 1
H 1 0 0
L 1 0 1
M(HL) 1 1 0
A 1 1 1

Пример1.1.

Адрес Число Комментарий

0800 78 ;однобайтная команда, выполняющая

;пересылку в аккумулятор из регистра B

В двоичной форме код операции выглядит так

D7 D6 D5 D4 D3 D2 D1 D0

0 1 1 1 1 0 0 0

Находящиеся в составе данного кода операции биты D7, D6 кодируют действия команды; биты D5..3 кодируют операнд-приёмник – регистр A; биты D2..0 кодируют операнд-источник – регистр B.

Пример1.2.

Адрес Число Комментарий

0801 06 ; двухбайтная команда, выполняющая

0802 4C ; пересылку в регистр B числа 4C (2й байт команды)

В двоичной форме код операции выглядит так

D7 D6 D5 D4 D3 D2 D1 D0

0 1 1 1 1 0 0 0

Находящиеся в составе данного кода операции биты D7, D6 кодируют действия команды; биты D5..3 кодируют операнд-приёмник – регистр B; биты D2..0 кодируют операнд источника – 2-й байт команды.

Пример1.3.

Адрес Число Комментарий

0803 D3 ;двухбайтная команда, выполняющая вывод байта из

0804 … F0 ;аккумулятора в порт с адресом F0, являющимся 2-м байтом

; команды

В двоичной форме код операции выглядит так

D7 D6 D5 D4 D3 D2 D1 D0

1 1 0 1 0 0 1 1

Все биты находящиеся в составе данного кода операции кодируют действия команды.

Пример1.4.

Адрес Число Комментарий

0805 21 ;трёхбайтная команда, выполняющая пересылку

0806 …00 ; в регистровую пару HL

0807 …0B ; двухбайтного числа 0B00

В двоичной форме код операции выглядит так

D7 D6 D5 D4 D3 D2 D1 D0

0 0 1 0 0 0 0 1

Биты D5..4 кодируют операнд-приёмник – регистровую пару HL; остальные биты кодируют действия команды.

Пример1.5.

Адрес Число Комментарий

0808 3A ;трёхбайтная команда, выполняющая пересылку

0809 …01 ;в аккумулятор операнда из ячейки памяти

080A …0B ;с адресом 0B01 размещённым прямо в команде

0809 …01 ;в аккумулятор операнда из ячейки памяти

080A …0B ;с адресом 0B01 размещённым прямо в команде

Поскольку код операции всегда является первым байтом команд, постольку его ещё часто называют кодом команды.

Многобайтные числа в составе команды или в составе данных хранятся согласно следующему правилу.

Байты числа размещаются в последовательно расположенных ячейках памяти (адреса ячеек последовательно увеличиваются), причём сначала в младших адресах размещаются младшие байты, а затем в более старших адресах – более старшие байты числа. Адресом числа называют адрес самого младшего байта этого числа.

Например, трёхбайтное число 126A38 должно хранится в памяти по адресу 0B00 следующим образом:

0B00 38

0B01 6A

0B02 12

Представленная таким образом программа будет являться программой на языке машинных команд, поскольку такие команды могут быть непосредственно транслированы аппаратными средствами процессора.