Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000544.doc
Скачиваний:
26
Добавлен:
30.04.2022
Размер:
14.75 Mб
Скачать

4.1.1. Формат команд микропроцессора к580ик80а

В микропроцессоре используются одно-, двух- и трехбайтовые форматы команд.

Содержимое 1-го байта указывает на формат команды, код операции, вид адресации и регистры или регистровые пары, если они участвуют в выполнении операции. В команде нельзя указать непосредственно разряды, ответственные за первые 3 составляющие, которые не разделяются и считаются единым полем кода операции. Если в операции участвуют регистры, то они могут быть указаны в 1-ом байте. При этом разряды 0-2 отведены под номер регистра-источника операнда, а разряды 3-5 отведены под номер регистра-приемника. Если регистр не участвует в операции, то его место в команде отводится под код операции.

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

4.1.2. Методы адресации микропроцессора к580ик80а

В микропроцессоре используется 4 метода адресации:

1. Прямой регистровый метод адресации: операндами являются содержимое указанных в команде регистров.

2. Непосредственный метод адресации: операнд, занимающий один или два байта, задается во втором или во втором и третьем байте команды.

3. Косвенная адресация: в команде указывается пара регистров, содержащая адрес операнда.

4. Абсолютный метод адресации: адрес операнда содержится во втором (младшая часть) и третьем (старшая часть) слове команды.

Для каждого типа команд особым образом формируются признаки. Особенности формирования признаков:

  1. Команды пересылки и переходов не изменяют состояние признаков.

  2. Команды приращения не меняют признак переноса С.

  3. Команды приращения пар регистров не изменяют признаки.

  4. Арифметические операции формируют все признаки; при сложении содержимого пар регистров используется признак переноса С.

  5. Логические операции сбрасывают признаки переносов С и V.

4.1.3. Команды безусловной и условной передач управления

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

В системе команд процессора К580ИК80А предусмотрены безусловные и условные переходы, безусловные и условные переходы к подпрограмме и возвраты. При этом адрес перехода задается во втором ( младший байт адреса ) и третьем байте ( старший байт адреса ) команды.

Перед использованием подпрограмм и прерываний указатель стека должен быть установлен. В связи с этим процедура начальной установки состояния стека использующей его программой (определение выделяемой под стек области памяти) состоит в начальной установке регистра-указателя стека, а именно, записи в него адреса ячейки памяти, являющейся "вершиной" пустого стека. Установка в SP некоторого начального значения производится по команде пересылки SPHL (1111 1001). По этой команде в SP пересылается содержимое пары регистров HL. Обмен со стеком осуществляется двухбайтовыми словами. Сначала размещают старший байт, затем младший байт адреса. Можно переслать также данные из пары регистров DE в стек, используя команду PUSH D (1101 0101). Средняя триада кода - код старшего регистра D.

При записи в стек указатель стека уменьшается на 1 и содержимое регистра D заносится в стек; затем SP снова уменьшается на 1 и в стек заносится содержимое регистра E.

В микропроцессоре предусмотрена возможность прерывания текущей программы по запросам внешних устройств. Чтобы разрешить прерывание программы на каком-то участке программы выполняется команда разрешения прерывания EI (1111 1011). Для запрета прерывания используется команда DI (1111 0011).

Процесс прерывания выполняется следующим образом. От внешнего устройства поступает сигнал запроса прерывания. Если прерывание разрешено, то после выполнения текущей команды в шине данных в такте выдачи информации о состоянии процессора появятся сигналы: D0- "Подтверждение прерывания", D1-"Ввод" и D5- "Прием 1-го байта". По сигналу "Подтверждение прерывания" внешнее устройство выдает на шину данных команду "Рестарт" - RST. При выполнении команды RST содержимое счетчика команд PC запоминается в стеке, а в PC заносится адрес первой команды обработки прерывания, который задается следующим образом.

RST имеет структуру 11 *** 111, где * - двоичная цифра. При выполнении команды RST в счетчик заносится адрес 00 000 000 00 *** 000. Задавая *** , определяем одну из 8 программ обработки. Адрес *** формируется аппаратурой внешнего устройства. После выполнения прерывающей программы возврат в основную программу производится по команде RET.

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

Процессор имеет состояние останова, в которое он может быть переведен командой HLT (0111 0110). При выполнении этой команды шины переводятся в 3-е состояние и вырабатывается сигнал "логической 1" на выходе управляющей линии "Ожидание". Вывод процессора из этого состояния осуществляется перезапуском или прерываниями.