jnz wait ; Если не равно, то перейти на wait
in al, portA ; AL-D0...D7
in ah, portB ; AH-D8, D9
mov [bx], al ; Сохранить младшую часть результата в ОЗУ
inc bx ; Увеличить bx на 1
mov [bx], ah ; Сохранить старшую часть результата в ОЗУ
inc bx ; Увеличить bx на 1
mov al, start_1 ; AL-START_1
out dx, al ; Формирование START=1
call delay ; Вызов подпрограммы DELAY
dec cx ; Уменьшить счетчик циклов на 1
jnz start ; Если не ноль, то перейти на start
hlt ; Остановка
; Подпрограмма временной задержки DELAY
delay: push f ; Сохранить в стеке содержимое регистра флагов
cycle: mov ax, ffffh ; Загрузка в AX расчетной величины FFFFh
dec ax ; Уменьшить АХ на 1
jnz cycle ; Если не ноль, то перейти на cycle
pop f ; Восстановить содержимое регистра флагов
ret ; Возврат в основную программу
end
1.5.1 Общие сведения
Микропроцессорный комплект серии К1810 включает в свой состав следующие БИС:
К1810ВМ86 – однокристальный 16-разрядный МП с быстродействием до 2,5 млн. оп./с, емкостью адресуемой памяти 1 Мбайт и системой команд, совместимой с системой команд КР580ВМ80А на ассемблере;
К1810ВМ87 – однокристальный 16-разрядный сопроцессор арифметики с плавающей точкой;
К1810ВМ88 – однокристальный 8-разрядный МП с быстродействием примерно в 2 раза большим, чем у К1812ВМ85А, и в 5 раз, чем у КР580ВМ80А, емкостью адресуемой памяти 1 Мбайт и системой команд, идентичной системе команд К1810ВМ86;
К1810ВМ89 – однокристальный 16-разрядный сопроцессор ввода/вывода;
К1810ГФ84 – генератор тактовых сигналов;
К1810ВН59А – программируемый контроллер прерываний;
К1810ВГ88 – системный контроллер;
К1810ВБ89 – арбитр шины;
БИС МП комплекта могут использоваться совместно с программируемыми периферийными БИС МП комплекта серии К580.
В составе семейства предусмотрены по два типа универсальных и специализированных однокристальных микропроцессоров. Универсальные микропроцессоры предназначены для построения центральных процессоров, выполняющих функции главного процессора микропроцессорной системы. Оба процессора 16-разрядные, адресуют память объемом 1 Мбайт и адресное пространство внешних устройств объемом 64 Кбайта, имеют совмещенную шину данных/адресов и отличаются разрядностью шины. Микропроцессор К1810ВМ86 имеет 16-разрядную совмещенную шину данных/адресов и отдельную 4-разрядную шину адресов, он предназначен для построения 16-разрядных систем. Микропроцессор К1810ВМ88 имеет 8-разрядную совмещенную шину данных/адресов и отдельную 12-разрядную шину адресов, он предназначен для построения 8-разрядных микропроцессорных систем. Специализированные микропроцессоры ориентированы для расширения функциональных возможностей центральных процессоров. Один из них 8-разрядный арифметический сопроцессор (АСП) К1810ВМ87 расширяет вычислительные возможности центральных процессоров (типы обрабатываемых данных и систему команд). Другой 16-разрядный процессор ввода/вывода (ПВВ) К1810ВМ89 предназначен для построения 8- и 16-разрядных каналов ввода/вывода. Процессор позволяет управлять двумя каналами ПДП.
1.5.2Микропроцессор К1810ВМ86
К наиболее важным особенностям К1810ВМ86 относятся следующие: развитая регистровая структура, существенно уменьшающая число обращений к памяти; конвейерный принцип выполнения команд с предварительной выборкой, обеспечивающей максимальную пропускную способность системной магистрали; распределенное микропрограммное устройство управления; мультиплексированная шина адреса/данных; многофункциональное использование выводов, позволяющее адаптировать МП к уровню сложности разрабатываемой системы; способность координировать взаимодействие нескольких процессоров, что упрощает построение на его основе мультипроцессорных систем. В последних возможно применение процессоров двух типов: независимых, т.е. выполняющих собственный поток команд (К1810ВМ86), и вспомогательных – сопроцессоров (например, К1810ВМ87, К1810ВМ89). Сопроцессор анализирует команды, выбираемые главным (независимым) процессором, и выполняет те, на которые распространяется его специализация.
МП К1810ВМ86 ориентирован на параллельное выполнение выборки и команд, может быть условно разделен на две части, работающие асинхронно (рисунке 1.15): устройство сопряжения с магистралью (УС) и устройство обработки (УО).
Устройство сопряжения с магистралью обеспечивает формирование 20-разрядного физического адреса памяти, выборку команд и операндов из памяти, организацию очередности команд и запоминание результатов в памяти. В состав УС входит шесть 8-разрядных регистров очереди команд, четыре 16-разрядных сегментных регистра, 16-разрядный регистр адреса команд, 16-разрядный регистр обмена (РО) и 16-разрядный сумматор адреса (СМА), управление шиной (УШ).
Устройство сопряжения готово выполнить цикл выборки слова и памяти всякий раз, когда в очереди освобождаются по меньшей мере два байта, УО извлекает из нее коды команд по мере необходимости. Очередь организована по принципу FIFO (first in – first out) - «первым пришел – первого обслужили», а шесть ее уровней позволяют удовлетворять запросы УО в кодах команд достаточно эффективно, сокращая тем самым до минимума затраты времени МП на ожидание выборки команд из памяти. Выполнение команд происходит в логической последовательности, предписанной программой, поскольку в очереди находятся те команды, которые хранились в ячейках памяти, непосредственно следующих за текущей командой. При передаче управления в другую ячейку памяти ход выполнения программы нарушается. Устройство сопряжения очищает регистры очереди, выбирает команду по адресу перехода, передает ее в УО и начинает новое заполнение этих регистров. При возврате из подпрограммы или из прерывания происходит восстановление очереди команд, адреса которых автоматически вычисляются в СМА. Если МП необходимо выполнить цикл чтения или записи, то выборка команд приостанавливается на время цикла.
Сегментные регистры соответствуют четырем сегментам памяти: данных – DS, стека – SS, кода – CS, и промежуточных данных – ES. В каждом из этих регистров хранятся 16 старших разрядов кода адреса соответствующего сегмента памяти; 20-разрядный физический адрес, позволяющий работать с памятью емкостью до 1 Мбайт, образуется в СМА путем сдвига базового адреса сегмента на четыре разряда влево и сложения его с 16-разрядным адресом смещения. Адрес смещения находится в одном из регистров указателей или индексов УО и позволяет адресовать полученные байты или слова в пределах 64 Кбайт выбранного сегмента. Если полученное в СМА значение превышает значение самого старшего адреса сегмента, то физический адрес вновь отсчитывается от начала сегмента до значения превышения. При вычислении физического адреса операнда в качестве базового адреса используется содержимое регистров сегмента данных и сегмента промежуточных данных, а при вычислении физического адреса команды – содержимое регистра сегмента кода. Регистр адреса команд (указатель команд) IP соответствует счетчику команд микропроцессора К580ВМ80А и указывает следующую команду, которая будет выполняться после текущей команды. Устройство сопряжения записывает в него из УО смещение следующей команды от начала текущего сегмента кода. Если содержимое регистра адреса команд засылается в стек, то происходит автоматическая настройка его на адрес следующей команды.
Устройство обработки предназначено для выполнения операций по обработке данных и состоит из устройства микропрограммного управления (УМУ), 16-разрядного АЛУ, восьми 16-разрядных регистров общего назначения (РОН) и регистра признаков (РП). Команды, выбранные УС из памяти и записанные в регистры очереди команд (РОК), по запросам от УО поступают в УМУ. Это устройство, содержащее память микрокоманд, декодирует команды и вырабатывает последовательность микрокоманд, управляющую процессом обработки. В АЛУ выполняются арифметические и логические операции над 8- и 16-разрядными числами с фиксированной запятой. Для ускорения внутренних пересылок данных все регистры и магистрали данных в УО имеют 16 разрядов, прямой связи УО с внешней системной магистралью нет и оно обменивается данными с УС через регистр обмена (РО).
Программно-доступными функциональными частями МП являются регистры общего назначения (для хранения операндов и результатов выполнения команд), сегментные (для хранения базовых адресов текущих сегментов памяти), адреса команд и признаков. Регистры общего назначения разбиты на две группы по четыре регистра в каждой: данных, индексные и указатели. Старшие и младшие восемь разрядов группы регистров данных могут быть адресованы раздельно. В этом случае они образуют набор из восьми 8-разрядных регистров. Регистры данных можно использовать без ограничения в большинстве арифметических и логических операций. Другая группа регистров, включающая в себя два указателя (базы и стека) и два индексных регистра (источника и приемника), также может участвовать в большинстве арифметических и логических операций. Кроме того, в некоторых командах предполагается неявное использование РОН по следующему назначению: умножение, деление и ввод/вывод слов (АХ); умножение, деление и ввод/вывод байтов (АН); перекодирование (ВХ); операции со строками, циклы (СХ); сдвиги и циклические сдвиги на различное число разрядов (СL); умножение и деление слов, неявный ввод/вывод (DX); операции со стеком (SP); операции со строками (SI, DI).
В регистре признаков используются только девять разрядов. Шесть из них служат для регистрации особенностей результата арифметических и логических операций. Микропроцессор имеет группу команд, которые позволяют изменять порядок выполнения программы в зависимости от состояния этих шести разрядов, т.е. от результата предыдущей операции. Признак вспомогательного переноса AF используется командами десятичной арифметики. При переносе из третьего разряда в четвертый либо займе из четвертого разряда в третий младшего байта 16-разрядного числа признак AF устанавливается в 1. Признак переноса CF используется командами сложения и вычитания многобайтных чисел. При переносе или замене из старшего разряда результата признак CF устанавливается в 1. Команды циклического сдвига могут изолировать сдвигаемый разряд в памяти или регистре путем размещения его в разряде признака переноса.