Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_ПЗ.doc
Скачиваний:
21
Добавлен:
01.12.2018
Размер:
974.85 Кб
Скачать

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

Введение

Проектирование системы команд оказывает влияние на структуру ЭВМ. Оптимальную систему команд иногда определяют как совокупность команд, которая удовлетворяет требованиям проблемно-ориентированных применений таким образом, что избыточность аппаратных и аппаратно-программных средств на реализацию редко используемых команд оказывается минимальной. В различных программах ЭВМ частота появления команд различна; например, наиболее часто встречается команда передачи MOV(B), на ее долю приходится приблизительно 32% всех команд в типичных программах. Систему команд следует выбирать таким образом, чтобы затраты на редко используемые команды были минимальными.

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

Команды классифицируются по функциональному назначению, по числу адресов (безадресные, одноадресные, двухадресные), по способу кодирования команд (с фиксированным полем КОП, с расширяющимся полем КОП), по длине команды (однобайтовые, двух- и трехбайтовые), по способу адресации.

Почти во всех форматах команд первый байт отводится для кода операции, но далее форматы команд разных ЭВМ сильно отличаются друг от друга. Остальные байты должны определять операнды или их адреса, и поэтому они используются для комбинации режимов, адресов регистров, адресов памяти, относительных адресов и непосредственных операндов. Обычно длина команды варьируется от 1 до 3 и даже 6 байт.

По форматам команд можно судить о возможностях ЭВМ.

Мнемоническая форма записи команд

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

Следующий шаг – замещение командного кода коротким именем, называемым мнемоникой. Заменяя каждый код мнемоникой, можно написать программу. Мнемоника может быть легко преобразована в машинные коды после написания программы. Программы, написанные с использованием мнемоники, называются программами на языке Ассемблер.

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

Набор команд микропроцессора и способы адресации

Все команды по функциональному назначению делятся на шесть групп (см. На рис. 15 схему команд мп кр580вм80):

  • Команды пересылки данных. Осуществляют запись чисел в конкретный РОН и пересылку данных между РОН или между памятью и РОН.

  • Арифметические команды. Предназначены для выполнения сложения, вычитания, увеличения и уменьшения содержимого РОН или ячеек памяти.

  • Логические команды. Выполняют логические операции «И», «ИЛИ», «Исключающее ИЛИ», сравнение, сдвиг данных в РОН.

  • Команды переходов, вызова подпрограмм и возвращения из подпрограмм.

  • Команды ввода-вывода, управления флагами.

  • Команды сдвига данных.

Команда состоит из двух основных частей: кода операции КОП и кода адреса (данных) КАД.

Различаются следующие способы адресации МП 580ИК80:

  • непосредственная – данные размещаются в поле КАД,

  • прямая – адрес данных указывается в поле КАД,

  • косвенная – в КАД указывается адрес ячейки памяти, в которой хранится адрес данных,

  • косвенно-регистровая – в КАД указывается регистр, в котором хранится адрес данных.

Основные команды микропроцессора приведены на рис. 18.

Поразрядные логические операции

Команда

Операция

ANA r

A=A*РОН

XRA r

A=А РОН

ORA r

A=A+РОН

CMP r

A – r

ANI D8

A=A*D8

XRI D8

A=А D8

ORI D8

A=A+D8

CMI D8

A – D8

Математические операции

Команда

Операция

ADD r

A=A+РОН

SUB r

А=А–РОН

INR r

РОН=РОН + 1

DCR r

РОН=РОН – 1

ADI D8

А=А + данные

SUI D8

А=А – данные

Команды, в которых задействованы РОН, могут использоваться для операций с ЗУ

(в команде вместо r ставится М, адрес ЗУ записывается в РОН HL)

Пересылка данных

Команда

Источник

Приемник

MOV M, r

РОН

ЗУ

MOV r, M

ЗУ

РОН

MOV r2, r1

РОН 1

РОН 2

MVI M, D8

данные

ЗУ

MVI r, D8

данные

РОН

LXI rp, D16

данные

пара РОН

Команды перехода

Команда

Переход

Jпризнак адр

на указанный адрес

Спризнак адр

на указанный адрес к подпрограмме

Rпризнак

к основной программе из подпрограммы

Вместо слова признак ставится его буквен-ное обозначение – NZ, Z, NC, C, PO, PE, Р, М.

Ввод-вывод данных

Команда

Действие

IN адр

Байт данных из порта с указанным адресом в

РОН А

OUT адр

Байт данных из РОН А в порт с указанным адресом

r – РОН А, B, C, D, E, H, L; rp – пара РОН ВС, DE, HL; М – ЗУ;

D8 – байт данных; D16 – два байта данных

Сдвиг данных

Команда

Действие

RLC

Циклический сдвиг данных РОН А в сторону старших разрядов

RRC

Циклический сдвиг данных РОН А в сторону младших разрядов

Рис. 18

Непосредственная пересылка данных

Команда MVI r, байт данных

По данной команде в РОН r загружаются данные, находящиеся во втором байте команды. При выполнении команды MVI А данные загружаются в регистр А (аккумулятор). С помощью команды MVI В производится загрузка данных в регистр В. Команда имеет длину 2 байта и выполняется за два микроцикла. В таблице 1 приведен пример записи в регистр А числа 89 (16).

Таблица 1

Мнемоника

16 - ричный код

MVI A

байт

89

Команда LXI rp, 2 байта данных

Команда аналогична команде MVI r, байт данных только под rp подразумевается пара регистров общего назначения. При этом пара регистров BC обозначается как В, пара DE – как D, пара HL – как H. Команда содержит три байта (байт кода операции и два байта данных). В таблице 2 приведен пример записи в пару регистров HL числа 8011 (16).

Таблица 2

Мнемоника

16 - ричный код

LXI H

21

байт данных

11

байт данных

80

Второй байт данных (80) пересылается в первый регистр Н, а первый байт данных (11) пересылается во второй регистр L пары регистров. В результате в пару регистров HL пересылается число 8011(16).

Если выполнить эту команду, а затем команду MVI M, байт данных, то байт данных пересылается в ячейки ОЗУ с адресом, записанным в паре регистров HL 8011(16).

Пересылка из регистра в регистр

Команда МOV r1, r2. Действие r2 r1.

По команде в РОН r1 загружается копия данных, содержащихся в РОН r2. Содержимое регистра r2 при этом не изменяется. Так, при выполнении MOV B,A копия данных, находящихся в регистре А, записывается в регистр В. Это однобайтовая команда, реализуемая за два микроцикла.

Команды переходов, вызова подпрограмм и возвращения из подпрограмм

Команда JMP адр безусловный переход на указанный адрес. В табл. 3 приведен пример команды, по которой программа перейдет к адресу 1С0F(16).

Таблица 3

Мнемоника

16 - ричный код

JMP

С3

Младший байт адреса

0F

Старший байт адреса

1C

Команда J признак адр – условный переход на указанный адрес. При записи мнемоники команды необходимо вместо слова признак указать одну или две буквы, обозначающие условие перехода (см. таблицу 4).

Таблица 4

Обозначение признака

Признак

NZ

Неравенство нулю

Z

Равенство нулю

NC

Отсутствие переноса

C

Наличие переноса

PO

Результат нечетный

PE

Результат четный

P

Результат положительный

M

Результат отрицательный

В таблице 5 приведен пример команды, по которой программа перейдет к адресу 1С0F(16) при условии, что результат выполнения предыдущей команды в РОН А даст нуль. Если в РОН А будет не нуль, то выполняется следующая команда.

Таблица 5

Мнемоника

16 - ричный код

JZ

CA

Младший байт адреса

0F

Старший байт адреса

1C

Команда CALL адр – безусловный вызов подпрограммы, расположенной по указанному адресу.

Команда C признак адр – условный вызов подпрограммы, расположенной по указанному адресу. При записи мнемоники команды необходимо вместо слова признак указать одну или две буквы, обозначающие условие перехода (см. таблицу 4).

Команда RET – безусловный возврат из подпрограммы в основную программу на адрес, с которого произошел вызов подпрограммы. Вычисление адреса производится автоматически, поэтому в команде он не указывается.

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