Принцип работы Система начинает работать после приема сигнала сброса. По этому сигналу все регистры, входящие в ЦП, переходят в исходное нулевое состояние.

Презентация:



Advertisements
Похожие презентации
Тема 2. Способы адресации и система команд МП. Непосредственная адресация Суть способа. Требуемые данные (#data ̶ непосредственный операнд, константа)
Advertisements

Микропроцессорные системы ЭФУ АРХИТЕКТУРА 8-РАЗРЯДНОГО МИКРОПРОЦЕССОРА.
Микропроцессоры Архитектура ЭМП Лекция 9. Архитектура ЭМП В предыдущем параграфе мы изучили схему выводов и их назначение у типового микропроцессора.
Лекция 6. Способы адресации в микропроцессорных системах.
ПОДСИСТЕМА ВВОДА-ВЫВОДА 1. Общие принципы организации ввода-вывода 2 Систему ВВ можно представить в виде пространства ВВ IOSEGment и ряда команд ВВ. Пространство.
Микропроцессоры Лекция 6. СТРУКТУРА ЭЛЕМЕНТАРНОГО МИКРОПРОЦЕССОРА (ЭМП) Основным устройством всех цифровых систем (ЦС) является центральный процессор.
С ИСТЕМА КОМАНД ЕОМ. С ТРУКТУРА ТА ФОРМАТИ КОМАНД.
Тема урока: ТРИГГЕР. или не не Разнообразие современных компьютеров очень велико. Но их структуры основаны на общих логических принципах, позволяющих.
Лекция 7. Система команд микропроцессора. Адресное пространство с прямой адресацией данного процессора составляет 2 16 = 64 Кбайт памяти. Микропроцессоры.
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
Написанная Дж. Нейманом часть отчета по машине содержала общее описание ЭДВАКа и основные принципы построения машины (1945г.). Она была размножена Г. Голдстайном.
Машинная команда Энциклопедия учителя информатики Газета «Первое сентября»
Тема 1. Общие вопросы организации микропроцессорных систем.
Исполнение программы Энциклопедия учителя информатики Газета «Первое сентября»
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Магистрально-модульный принцип построения компьютера Устройство компьютера.
«Двоичная арифметика, алгоритм сложения». Учебные вопросы: 1. Правила недесятичной арифметики. 2. Способы представления чисел в разрядной сетке ЭВМ.
Системы счисления, используемые в компьютере. Борисов В.А. КАСК – филиал ФГБОУ ВПО РАНХ и ГС Красноармейск 2011 г.
Магитстрально- модульное построение компьютера. архитектурой ЭВМ называется описание структуры и принципов работы компьютера без подробностей технической.
Микропроцессоры Лекция 7. Работа ЦС (микро ЭВМ) Пусть требуется выполнить простую операцию сложе­ния трех чисел, например = Короткая и.
Транксрипт:

Принцип работы Система начинает работать после приема сигнала сброса. По этому сигналу все регистры, входящие в ЦП, переходят в исходное нулевое состояние. Обнуляется оперативная память, обнуляются регистры устройства ввода-вывода. В ЦП помимо этого обнуляется счетчик адреса. Далее под действием тактовых сигналов на ША вырабатывается нулевой адрес. По этому адресу производится первое обращение к первой ячейке ПЗУ, где хранится начало работы программы. За сигналом адреса по шине управления (ШУ) следует сигнал чтения (read), далее идет синхросигнал, а ПЗУ отвечает, что готово выдать сигнал. Итак, после выставления нулевого адреса по ША, а также сигнала read и синхросигнала по ШУ, ПЗУ отвечает сигналом ready (готов). Одновременно с сигналом ready выставляется первый байт, который через ШД поступает ЦП. Принятый байт анализируется и тут же выполняется. Следом за этим выставляется новый адрес и вся процедура выполняется до тех пор, пока не будет считана последняя ячейка ПЗУ. После первоначальной инициализации переходим к выполнению рабочей программы. Для этих целей через устройство ввода/вывода передается рабочая программа, которая помещается в оперативную память. При выполнении рабочей программы процессы аналогичны процессу инициализации

При перекачке рабочей программы с внешнего носителя в оперативную память возможны два режима: Информация с внешнего носителя поступает на устройство ввода/вывода, затем на внешнюю ШД, на буфер 1 (Б1), через внутреннюю ШД на ЦП, далее вновь обратно поступает в ОЗУ. С внешнего носителя на устройства ввода/вывода, на внешнюю шину данных и с нее на ОЗУ (режим прямого доступа к памяти (ПДП)) После записи рабочей программы в ОЗУ начинается ее выполнение. Начиная с адреса 2 по ША ведется обращение к ОЗУ. Рабочая программа может быть либо ветвящейся, либо последовательной, либо циклической. Выполнение каждой из этих программ осуществляется по- разному: Последовательная программа. При выполнении последовательной программы адреса на ША формируются последовательно. Сигнал с ОЗУ, который хранится в разных ячейках адресного пространства, попадает в ЦП, и каждая команда выполняется после ее принятия. Ветвящаяся программа. Часть программы – последовательная, но есть условия, которые заставляют перейти на новую адресацию. При выполнении наперед заданных условий производится переход на новые адреса, которые хранят новые условия обработки задач. При этом старый адрес запоминается в специальном регистре и после выполнения условия идет возврат к прежнему адресу.

ОДНОКРИСТАЛЬНЫЙ МИКРОПРОЦЕССОР С ФИКСИРОВАННЫМ НАБОРОМ КОМАНД Буфер шин данных AБР1БР2IR MS/DMS W Z B C D E H L P C P S Буфер адреса и MAR DC АЛУ Десят. Коррек. F Уст-во формир. управл. сигн. и синхронизации. Сх. Инкр./декор S Ф1 Ф2 WR DBIN INTEHOLD HLDA READYWAIT INT SYNC RESET

СТРУКТУРА ЦП Структура ЦП 1. АЛУ – арифметическо-логическое устройство. Позволяет производить 4 вида операций: Арифметическое сложение; Логическое сложение; Логическое умножение; Суммирование по модулю два. 2. РОН – Блок регистров общего назначения. Участвуют в операции как восьмиразрядные регистры. Всего их шесть. Помимо этого они могут образовывать пары регистров, которые используются: для косвенной адресации; для 16-ти разрядной обработки сигналов. 3. Аккумулятор – является главным регистром процессора, в нем производится 95% всех операций. Это 8-разрядный регистр.

СТРУКТУРА ЦП 4. РС – счетчик команд. Необходим для перехода к новому адресу при последовательном выполнении программы. Всегда работает вместе с регистром адреса РА. При последовательном выполнении программы состояние счетчика команд РС последовательно увеличивается на единицу, переписывается в регистр адреса РА и через буфер 2 выдается на внешнюю шину данных ШД. Если выполняется ветвящаяся программа, то состояние счетчика команд запоминается в одной из ячеек указателя стека (SP), а в регистр адреса записывается адрес, на который нужно перейти в результате безусловной операции. 5. SP – указатель стека. Используется для упрощенной адресации к оперативной памяти. Это оперативная память магазинного типа – первым вошел – последним вышел. При запоминании сигналов в стек обязательно производится запись 16- ти разрядного числа.

СТРУКТУРА ЦП 6. Шина управления (ШУ) Генератор тактовых импульсов (ГТИ) формирует две импульсные последовательности Ф1 и Ф2, необходимые для тактирования работы микропроцессора. Сигнал сброса RESET подается при запуске микропроцессора. Он приводит все счетчики, триггеры и указатели стека в исходное нулевое состояние. WRITE – сигнал записи. READ – сигнал считывания. В микропроцессоре предусмотрена возможность по запросам внешних устройств прорывать выполнение текущей программы и переходить на выполнение новой программы, так называемой прорывающей программы. После окончания выполнения прорывающей программы микропроцессор возвращается к выполнению основной программы с команды, на которой произошло прорывание. Сигнал РАЗРЕШЕНИЯ ПРЕРЫВАНИЯ выдается на соответствующий выход управляющего устройства микропроцессора. Сигнал ЗАПРЕТ ПРЕРЫВАНИЯ запрещает производить прорывание при обработке программы. Микропроцессор может быть переведен в ведомый режим с помощью сигнала ЗАХВАТ. При этом микропроцессор отключается от внешних шин, предоставляя их в распоряжение некоторого внешнего устройства, и останавливает работу. В каждом цикле микропроцессор выдает на выход СИНХРОНИЗАЦИЯ стробирующие импульсы – синхросигнал и на шину данных – информацию о состоянии.

СТРУКТУРА ЦП 7. Регистр признаков. При выполнении всех арифметических и логических операций наряду с результатом вырабатывается 5 признаков, которые фиксируются в 5-ти разрядном регистре признаков. Т С - Признак переноса из восьмого в девятый разряд. Участвует в арифметических и логических операциях при переполнении разрядной сетки, кроме этого, он используется при циклических сдвигах аккумулятора вправо и влево. Т Z – Признак нуля. Устанавливается в состояние логической 1, если результат операции АЛУ или операции приращения содержимого регистра равен нулю. В остальных случаях Т Z =0. Т S – Признак знака. Если в результате выполняемой операции результат положительный, то Т S =0, если – отрицательный, то Т S =1. Т Р – признак четности. Устанавливается в состояние лог.1, если число единиц а разрядах результата четно; если количество единиц нечетное, Т Р =0. Т V – признак переноса из 4-го в 5-ый разряд.

ЦИКЛ РАБОТЫ МИКРОПРОЦЕССОРА Как у всякого процессора у МП цикл работы состоит из чтения команды и ее исполнения. Во время выборки команде извлекается из памяти и записывается в управляющий регистр IR Если команда двух или трех байтовая, то организуется необходимое число обращений к памяти второй и третий байты помещаются в регистры временного хранения информации W и Z. Во время выполнения команда дешифруется, производится обращение к памяти за операндом если необходимо производится обработка данных. Цикл выборки и исполнения команды состоят из нескольких машинных циклов (от одного до пяти). Машинный цикл требуется всякий раз, как только происходит обращение к памяти или внешним устройствам системы. При выборе команды всегда необходим один машинный цикл на каждый байт команды. Машинный цикл состоит из 3-5 тактов синхрогенератора. Такт - наименьший промежуток времени, необходимый для выполнения элементарного действия в МП. Его длительность равна периоду поступления сигналов ФГ синхрогенератора.

ЦИКЛ РАБОТЫ МИКРОПРОЦЕССОРА Начало каждого машинного цикла сообщается восьмиразрядным словом состояния процессора, которое выдается им в момент действия сигнала SYNC. МП имеет 10 различных машинных циклов : 1. FETCH (MI) - выборка команды, при выполнении этого цикла команда извлекается из памяти и помещается в управляющий регистр IR; 2. MEMOR READ - чтение из памяти, этот цикл формируется во всех тех случаях, когда читаются какие-либо данные иди второй и третий байты команды; 3. MEMORY WRITE - запись в память; 4. STACK READ - чтение стека; 5. STACK WRITE -запись в стек; 6. INPUT - ввод информации от внешних устройств; 7. OUTPUT - вывод информации во внешнее устройство; 8. INTERRUPT -подтверждение прорывания; 9. HALT -подтверждение останова; 10. HALT INTERRUPT -подтверждение прорывания во время останова.

Типы машинных циклов Разр яд шины данных Инф орм. В состоянии Выб орка команды MI Чтен ия памяти Запи сь в память Чтен ия стека Запи сь в стек Вво д Выв од Под верждение прорыв. Под верждение состояния Под верждение прорыв во время ост D0D0 INTA D1D1 W D2D2 STACK D3D3 HLTA D4D4 OUT D5D5 MI D6D6 IN D7D7 MEMR в

Общая диаграмма управляющих последовательностей аналогична той, что приведена была выше. Каждая ветвь диаграммы состоит из нескольких машинных циклов в зависимости от содержания команды. Машинные циклы следуют один за другим. Цикл состоит из 3-5 тактов, которые можно указать как T i (i=I-5). В первом такте Т 1 на шину данных выдается слово состояния процессора, которое сопровождается сигналом SYNC. Кроме того, в это время на адресную шину выдается адрес ячейки памяти или внешнего устройства, к которому будет производиться обращение. В состоянии Т 2 MП анализирует значение сигнала READY или HLTA и переходит соответственно, в состояние Т wn и Т w - ожидание. Если на МП поступил сигнал захвата HOLD, то внутренний триггер захвата устанавливается в I и МП переходит в режим захват, сообщая об этом сигналом HLDA на соответствующем своем выходе. При отсутствии сигнала READY МП переходит в режим ожидания так же сообщая об этом сигналом WAYT. С приходом сигнала готовности МП переходит в следующее состояние Т 3. В этом состоянии характер действий определяется типом машинного цикла. При выполнении цикла Ml код операции переносится в управляющий регистр IR, а в циклах чтения из памяти, записи в память, ввода и вывода информации, осуществляется пересылка данных,

Состояния Т 4 и Т 5 являются необязательными, и выполняются при необходимости в соответствии с содержанием команды. После такта Т 3 и Т 4 если выполнение команды не ограничивается одним машинным циклом, МП входит в следующий машинный цикл. Если же команда состоит из одного машинного цикла или выполняется последний машинный цикл команды, то начинается цикл Ml следующей команды. Во время прорывания МП в последнем такте последнего машинного цикла команды, по фазе Ф2 производится опрос входа INТ, на который поступает сигнал прорывания. Если INT =1 и сигнал 1NTE в единичном состоянии (т.е. прорывание уже было разрешено), то в течении машинного цикла Ml приращения PC не производится и выдается сигнал INTE. Сигнал INTE сбрасывается в "0" в такте Т 1. В этом же цикле, но в такте Т 3 устройство, запрашивающее прорывание выставляет код операции CALL (вызов подпрограммы) и последовательно два байта адресной части команды. Для чтения этих данных в МП последний трижды генерирует сигналы INTA и DBIN. Если сигнал HLTA в единичном состоянии, то МП будет находится в состоянии останова до тех пор, пока не поступит запрос прорывания при единичном значении сигнала INTE. В этом состоянии может происходить захват шин. Если состояние HLTA нулевое, то захват может происходить в такте Т 3 в цикле чтения и в такте, следующем за Т 3 в цикле записи.

УПРАВЛЕНИЕ СИСТЕМОЙ В состав микропроцессорной системы помимо самого микропроцессора обычно входит несколько компонентов, таких как запоминающие устройства различных типов, устройства ввода и вывода со средствами согласования, счетчики времени и т.д. Для управления всеми этими компонентами, имеющихся у МП сигналов явно недостаточно. Для решения этой задачи следует использовать слово состояние (RSW) МП, которое выдается им каждый раз вначале машинного цикла (такт Т1).Для управления памятью потребуется следующие сигналы: - чтение из памяти MR; - запись в память MW; Для управления вводом выводом : - ввод информации (I/OR ); -вывод информации (I/OW)

УПРАВЛЕНИЕ СИСТЕМОЙ Сигналы WR, DBIN выдаются на соответствующих выходах МП, а MEMR, WO, IN и ОUТ содержатся в слове состояния. Для хранения слова состояния МП к шине данных подключается регистр, который называется системным регистром (SL), запись информации в этот регистр (слова состояния МП) производиться вначале каждого машинного цикла по сигналу SYNC. Для формирования сигналов управления на выходах регистра, SL устанавливаются логические элементы. Управляющие сигналы, формируемые из сигналов на выходе регистра SL и выходах МП образуют управляющую шину, число проводов в ней определяется характером и числом используемых в системе компонент.

УПРАВЛЕНИЕ СИСТЕМОЙ Формирование системных управляющих сигналов. МП SL D0 D1 D2 D3 D4 D5 D6 D7 1 DBINWR SYNC Ф2 DBIN WR ША А 0- -А 15 ШD D 0- -D 15 MR I/OR MR I/OW

ВИДЫ АДРЕСАЦИИ Для того чтобы могла быть выполнена определенная операция, в команде, кроме вида операции, должно содержаться указание, откуда берутся участвующие в операции числа и куда помещается результат выполненной операции (иначе говоря, указания об источниках и приемнике операндов). Под видами адресации понимают способы, используемые для указания источников и приемников операндов. Прямая адресация. При этом способе адресации используется однобайтовая команда, которая содержит только код операции (КОП). В байте КОП указываются адреса регистров, где хранятся операнды и куда пересылается результат. Адреса регистров приведены в следующей таблице: Под М понимается ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL.А – аккумул ятор. Регистр Адрес регистра, используемый в командах Регистр Адрес регистра, используемый в командах В000H100 С001L101 D010M110 E011A111

Непосредственная адресация. При этом способе адресации операнды (один либо два) задаются непосредственно в команде вслед за байтом кода операции во втором, либо втором и третьем байтах. Таким образом, непосредственная адресация – это двух- или трехбайтовая команда. Косвенная адресация. При этом способе адресации в команде указывается пара регистров блока РОН (путем указания адреса одного из регистров этой пары), содержимое которой служит адресом, по которому в оперативной памяти находится операнд. Пара регистров HL является более предпочтительной при обращении к ячейкам оперативной памяти, т.к. с помощью этой пары регистров возможно переслать содержимое оперативной памяти в любой из регистров назначения. В [(HL)] Пары регистров ВС и DE используются только при пересылках из оперативной памяти в аккумулятор и обратно. A [(BC)] A [(DE)]

Для реализации индексной, базовой и регистровой адреса ­ ции в процессоре машины необходимо произвести ряд изменений. Требуется ввести в его схему ряд дополнительных регистров, которые могут быть выполнены в виде одного или нескольких бло ­ ков. Для обращения к ним необходимы дополнительные средства - мультиплексоры, де мультиплексоры, дешифраторы. При индексной адресации используется индексный регистр, в котором хранится величина приращения ( или уменьшения ) адре ­ са. Исполнительный адрес, в этом случае, представляет собой сумму содержимого индексного регистра и адресного поля команды Обычно в процессоре имеется несколько индексных регистров, которые образуют массив. Тогда в команде следует иметь специ ­ альное поле (xr), в котором указывается номер индексного регистра. Индексная адресация необходима в тех случаях, когда тре ­ буется обработать массив данных, размещенных в смежных ячей ­ ках памяти. Для выполнения самой обработки потребуется одна или несколько команд, которые будут повторяться столько раз, сколько содержится элементов в массиве данных. При этом после обработки каждого элемента, содержимое индексного регистра увеличивается или уменьшается на I, подготавливая таким обра ­ зом, адрес следующего операнда.

В случае относительной адресации адрес операнда определя­ется относительно счетчика команд, который представляет собой адрес тукущей исполняемой команды. После выборки команды об­ращение к операнду производится следующим образом: МАR - R(АDDR) + РС, R-- М(МАR ), А-R. Обычно операнды размещаются в памяти и для ускорения обработки иногда можно промежуточные результаты не засылать в память, а хранить их в специальном массиве регистров, кото­рый может быть организован в процессоре, наряду с индексными регистрами. МП с микропрограммным управлением обычно имеют секционную структуру-наращиваемую путем добавления секций. Благодаря этому имеется возможность создавать МП с заранее заданными характеристиками: разрядностью адресной и шины данных, число и содержание выполняемых команд и т.д.

СИСТЕМА КОМАНД МП Все множество команд рассматриваемого МП можно разделить на 7 групп: пересылки; арифметические; логические; передачи управления; команды ввода вывода; обращение к стеку; управления процессором. В таблице приведена вся система команд МП, приведено краткое описание, указана длина команд в байтах, длительность исполнения в машинных циклах, возможность управления признаками результата операции.

В таблице принята следующая система обозначений: Д, S - приемник (destination) или источник (source) информации, в качестве которых используются регистры МП В, С, D, Е, Н, L, аккумулятор А и ячейки памяти М (memory); data - 8 или 16-ти битные слова данных; аddr - 16-ти битный адрес памяти ; - содержимое ячейки памяти или регистра МП; (SP) - содержимое указателя стековой памяти ; port - 8-битный адрес периферийного устройства; rp - регистровая пара ВС, DE, HL или указатель стека SP ; ССС - 3 битный код признака, используемого в командах передачи управления; n- номер команды повторного старта, n=0-7.

Группа команд Мнемоника команды Описание команды Чис ло байт Чис ло машинных тактов Признаки результат операции (флаги) PC ACAC Команды пересылки кодов MOV D,S(D) (S) MVI D,data(D) (data) LXI rp, data(D) (data) LDA addr(A) (addr) STA addr(addr) (A) LHLD addr L (addr),H (addr+1) SHLD addr (addr) L,(addr+1) H LDAX rp A (rp) STAX rp ((rp)) A XCHG(H) (D), (L) (E)

Операции пересылки и непосредственной загрузки При выполнении этого вида операций могут использоваться одно-, двух-, и трехбайтовые команды. Наиболее многочисленный класс операций – команды однобайтовые. Возможно использование семи регистров общего назначения, ячеек оперативной памяти, стеков. Производится пересылка или непосредственная загрузка одного или пары регистров. Операции пересылки. Производится пересылка данных из одного регистра в другой. Пример: С B - содержимое регистра В пересылается в регистр С. Мнемонически это записывается MOV C,B В случае использования пар регистров HL ячейка оперативной памяти рассматривается как отдельный регистр общего назначения. Пример: D [(HL)] D M – пересылка в регистр D содержимого пары регистров HL (M – ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL) Непосредственная загрузка регистра. Е 5D 16 MVI E,5D Непосредственная загрузка пары регистров DE 5D4FLXI D, 5D4F

: Команды арифметической Обработк и ADD S (A) (A)+(S) ADI data (A) (A)+data ADC S (A) (A)+(S)+(C) ACI data (A) (A)+data+(C) DAD rp (H,L) (H,L)+(rp) SUB S (A) (A)-(S) SUI data (A) (A)-data SBB S (A) (A)-(S)- (C) SBI data (A) (A)-data- (C) INR D (D) (D) INX rp (rp) (rp) DCR D (D) (D) DCX rp(rp) (rp)

Команды логической обработки ANA S (A) (A)^(S) ANI data (A) (A)^data XRA S (A) (A)+(S) XRI data (A) (A)+data ORA S (A) (A)^(S) ORI data (A) (A)^data CMP S (A) (S) CPI data (A) data RLC (An+1) An9(A0) (A7) (C) (A7) RRC (An) (An+1), (A7) (A0) (C) (A0) RAL (An+1) An, (C) (A7) (A0) (C) RAR (An) (An+1), (C) (A0) (A7) (C) STC (C) CMC (C) CMA(A)

Арифметические и логические операции Все операции данного класса команд производятся исключительно через аккумулятор. Операции производятся как с данными, хранящимися в регистрах общего назначения, так и с данными, которые следуют в командах. Сложение 2-х байтовых чисел возможно только арифметически. Логическое сложение А A DORA A,D 0111 A A ORI A, 1111 Арифметическое сложение A A+DADD A,D 0111A A+ ADI A, 10010

Команды передачи управления JMP addr (PC) (addr) Jcond addr (PC) (addr), если условие ССС в поле истино CALL ((SP)) (PC), (PC) (addr вызов подпрограммы) Сcond addr (PC) (addr),ели условие ССС в поле истино 311/ RETВозврат из подпрограммы (PС) ((SP)) Rcond Возврат из подпрограммы, если условие ССС в поле истино 15/ PCHL (PC) (H,L) RSTn Команда повторного старта

Операции условных и безусловных переходов. Условные переходы позволяют организовать ветвящиеся программы. Условные переходы выполняются по значению признаков, хранящихся в регистре признаков (Всего их 5 – T Z, T S, T C, T P, T V ). Каждый из этих признаков может принимать два значения – 0 и 1, – следовательно, всего можно организовать 10 условных переходов. Кроме того, имеется возможность перейти в любую точку программы (М i ) с помощью операции безусловного перехода (команда JMP М i ). Таким образом, имеется 11 команд условных и безусловных переходов, причем команды эти – трехбайтные. Примеры команд условных переходов: По признаку T Z :JNZ M i – если T Z =0; JZ M i – если T Z =1; По признаку T С :JNС M i – если T С =0; JС M i – если T С =1; По признаку T S :JNS M i – если T S =0; JS M i – если T S =1;

Команды ввода вывода IN port (A) (port) OUT port (port) (A) Команды работы со стеком PUSH rp (SP) (rp) PUSH PSW (SP) (A) и флаговый регистр (Z, S, P, C, AC) POP rp (rp) ((SP)) POP PSW Востановление флагового регистра I, Z, S, P, C, AC) и (A) ((rp)) XTHL (H, L) (SP) SPHL(SP) (H, L) Команды ввода/вывода.

Ввод (вывод) сигналов в (из) микропроцессора осуществляется исключительно через аккумулятор с помощью двухбайтовых команд. 1-ый байт – код операции, 2-ой байт – номер устройства ввода/вывода (УВВ). Т.к. восьмиразрядная кодовая комбинация может содержать 256 состояний, то имеется возможность опрашивать 256 устройств ввода и вывода. Пример команд ввода/вывода: Ввод в аккумулятор сигнала с устройства ввода 5: А УВВ 5 - IN 5. Вывод сигнала из микропроцессора через устройство вывода 2: УВ 2 А - OUT 2.

Команд ы управления МП EI Разрешение прорывания DI Завершение прорывания HLTОстанов NOPПустая команда

ПРИМЕРЫ ПРОГРАММИРОВАНИЯ МИКРОПРОЦЕССОРА Пример 1: Программирование последовательных участков алгоритма. Условие задачи: Имеется три числа, хранящиеся в ОЗУ в соседних ячейках. Адрес первого числа 7F5D. Все числа кодированы прямым кодом (положительные). Необходимо первые два числа сложить, а третье вычесть из полученной суммы. Результат вывести через устройство вывода 1. HL 7F5D A [(HL)] HL HL+1 A A+M HL HL+1 A A-M УВ1 A LXI H, 7F5D MOV A, M INX H ADD M INX H SUB M OUT 1 Алгоритм Программа

Пример 1 Выполнить операцию сложения содержимых двух ячеек 1. LDA 4120H. По этой команде из ячейки 2041 Н читается первый операнд и загружается в аккумулятор. 2. MOV В, А По этой команде в регистр В посылается содержимое аккумулятора - Команда имеет длину один байт. 3. LDA 4220H. По этой команде из ячейки 2042 Н читается второй операнд и загружается в аккумулятор. 4. ADD В По этой команде к содержимому аккумулятора прибавляется содержимое регистра В. Команда имеет длину один байт. 5. STA 4320Н По этой команде содержимое аккумулятора посылается в ячейку 2043Н. Команда имеет длину три байта. 6. HLT Эта команда является последней и останавливает процесс.

Пример 2. Разделение слова на части для выделения из одного байта двух шестнадцатеричных чисел, одно число в старшем полубайте, второй в младшем полубайте. Программа должна из исходного восьмиразрядного двоичного плова выделить четыре младших разряда и отправить их в ячейку 2041, а старшие разряды помещаются на место младших и затем в ячейку Задача решается следующим образом: Шаг 1. Прочитать в аккумулятор чисел из ячейки 2040Н. Шаг 2. Выполнить логическую операцию, "U" над содержимым аккумулятора и двоичной константой В результате младшие четыре бита исходного слова сохраняются без изменений (поскольку 0^1=0 и 1^1=1),а старшие биты станут равными нулю, (поскольку 0^0=0 и 1^0=0). Шаг 3. Послать содержимое аккумулятора в ячейку 204IH. Шаг 4. Вновь прочитать число из ячейки 2040Н. Шаг 5. Произвести сдвиг содержимого аккумулятора на 4 бита вправо, с тем чтобы старшие разряды оказались на месте младших. Шаг 6. Выполнить л огическую операцию "U" над содержимым аккумулятора и двоичной константой Шаг 7. Послать содержимое аккумулятора в ячейку В виду того, что для размещения исходного числа и результатов преобразования используются смежные ячейки, отличающиеся адресом на "I", для обращения к ним можно использовать регистр HL, как регистр косвенно-регистровой адресации.

Программа имеет следующий вид : LXI. Н, 2040 Н ; Загрузить в аккумулятор исходные данные ; MOV А, М MOV В, А ; Запомнить данные в РОН для последующей обработки ANI OF H; Замаскировать следующую цифру INX H; MOV M, A Записать в ячейку 2041 младшую 16- ричную цифру MOV А, В ; RRC Четырехкратный циклический сдвиг вправо исходного числа, которое хранилось в регистре В RRC; RRC ANI OFH; Замаскировать младшую цифру, которая находится после сдвига на месте старшей INX H; MOV M, A Запомнить старшую цифру в ячейке 2042 HLT В программе на шаге 1 после чтения исходное число запоминается в регистре В РОН. Это позволяет на шаге 4 не производить повторного чтения исходного числа из памяти.

Пример 2: Программирование ветвящихся участков алгоритма. Условие задачи : Имеется 2 массива, каждый из двух чисел. Адрес первого числа первого массива – 7F5D, адрес первого числа второго массива – 6F4E. Необходимо сложить элементы первого массива и в зависимости от результата переноса Т С произвести следующие операции : Если Т С =0, то элементы второго массива сложить между собой и результат вывести на устройство вывода 1, а на устройство вывода 2 вывести значение FF HEX ; Если Т С =1, то из первого элемента второго массива вычесть второй, результат, как и в первом случае, вывести на устройство вывода 1, а на устройство вывода 5 вывести значение 00 HEX ;

Алгоритм программы. STOP ТСТС HL 7F5D A [(HL)] HL HL+1 A A+M УВ1 A A C HL 6F4E A M HL HL+1 A A-M C A HL HL+1 A A+M C A A FF HL 6F4E A M УВ2 A A C A 00 УВ3 A M1 M2

Программа. К 1. LXI H, 7F5D К 2. MOV A,M К 3. INX H К 4. ADD M К 5. JC M1 К 6. LXI H, 6F4E К 7. MOV A,M К 8. INX H К 9. ADD M К 10. MOV C,A К 11. MVI A,FF К 12. OUT 2 К 13. MOV A,C К 14. M2: OUT 1 STOP К 15. M1: LXI H, 6F4E К 16. MOV A,M К 17. INX H К 18. SUB A,M К 19. MOV C,A К 20. MVI A,00 К 21. OUT 3 К 22. MOV A, CJMP M2

Рассмотренные примеры простых программ позволяют отметить следующие особенности в программировании для МП КР580: 1. Основная часть операций по обработке информации производится над содержимым аккумулятора. Программа начинается с загрузки исходных данных из памяти в аккумулятор и завершается запоминанием результата в ЗУ- 2. При составлении программ следует стремиться к сокращению числа обращений к памяти для чего необходимо запоминать промежуточные данные в РОН. 3. Число обращений к памяти может быть уменьшено за счет косвенной адресации с помощью пар регистров HL, DE, ВС. Для чего следует исходные данные и результаты размещать в смежных ячейках памяти. Косвенная адресация позволяет использовать короткие команды например, команда MOVА, М- однобайтовая- 4. С помощью команды ЛОГИЧЕСКОЕ И можно обнулять некоторые разряды обрабатываемых слов, что дает возможность работать с данными, имеющими длину, меньшую длины ячейки памяти. 5. С помощью команды сдвига можно осуществлять перемещение данных из одних разрядов в другие в целях их обработки..

В реальных технических системах таких, как например, узлы коммутации задача обработки выполняется не над отдельными данными, а требуют обработки большим массивов данных или отдельных элементов, которые занимают несколько ячеек памяти. Программы в этом случае должны выполнять одну и туже операцию над содержимым нескольких ячеек или элементов данных. Такое многократное выполнение операции осуществляется с помощью программных циклов, числом повторений цикла управляет счетчик, а указатели показывают, какой элемент данных или фрагмент многословного данного обрабатывается в данный проход Пример 3. Необходимо разместить нули в шестнадцати ячейках, начиная с адреса 2040, а по адресу F записать число FFH. Процесс заполнения памяти выполняется следующим образом. Шаг 1- Очистить аккумулятор, установить указатель в начало массива ячеек. Шаг 2. Записать 0 в указанную указателем ячейку памяти. Шаг 3. Модифицировать указатель и счетчик числа обнуляемых ячеек памяти. Шаг 4. Проверить,не выполнен ли цикл заданное число раз. Если нет, то повторить шаг 2. Шаг 5. Записать в ячейку число FF и закончить выполнение программы.

Начало Задание начальных значений, и установка указателей счётчиков Блок обработки Модификация счётчиков и указателей Цикл выполнен заданное число раз ? Завершающий блок конец нет да

Для выполнения описанной последовательности можно пользоваться следующей программой: XRA А; Очистить аккумулятор LXI H, 2040H; Установить указатель на адрес 2040 MVI В, OFH Установить счетчик числа обнуляемых ячеек памяти LOO : MOV М, А; 3 аписать "О" в ячейку памяти INX H,; Модификация указателя и счетчика DCR В JNZ, LOO; Проверить завершение записей 0 в ЗУ MVI М, FFH; 3 аписать в ЗУ число FF HLT

Задача 4 Переместить данные из одного массива в другой Шаг 1. Установить указатели начала массива передаваемых данных и начала области памяти, куда производится пересылка. Установить счетчик числа передаваемых байт. Шаг 2. Прочитать байт из одной области памяти и записать в другую. Шаг 3. Произвести модификацию указателей и счетчика переданных байт. Шаг 4. Проверить не завершена ли передача данных. Если не завершена перейти к шагу 2. В противном случае закончить процесс. Ниже приводится программа, составленная по указанному алгоритму: LXI Н, 2040Н; Установить указатели массивов LXI D.2240Н; и счетчик пересылаемых байт MVI В, OFH LOO: MOV А, М; Прочитать байт из памяти и записать его по новому адресу STAXD INX Н; Модифицировать указатели и счетчик переданных байт INXD DCRB JNZ LOO HLT

Задача 5. Выбрать из масива с адрессом 1234 длинной равной 5 все четные числа и разместить в массиве по адресу 2345.

Ввод адреса 1- масс. Ввод адреса 2- масс. Установка счетчика Ак М маскирование Запись числа во 2-массив Проверка четн? да нет Модификация адреса 2- массива Увеличить адрес 1-массива на 1 Модифицировать счетчик Конец Провери ть сч.=0 да нет

Программа Адрес Мнемокод Машин коды Коментарии 0000 LD BC, Ввод адреса 1-массива 0003 LD DE, Ввод адреса 2-массива 0006 LD H, Ввод длины массива LD A,(BC) 0A Загрузка в АК 1 числа с 1-массива 0009 AND A,FF E6 FF Маскирование ( умножение на FF) 000B JP PO,0010 E Проверка на нечетность 000E LD (DE),A 1A Запись числа из АК во 2-массив 000F INC DE 13 Модификация адреса 2 массива 0010 INC BC 03 Модификация адреса 1 массива 0011 DEC H 15 Модитфикация счетчика 0012 JP NZ,0008 C Проверка значения счетчика 0015HALT76 конец

Выбрать из памяти число и проверить на наличие единицы в нулевом разряде и если оно есть записать его в память. Адрес Машин. код Метка Мнемокод Примечание А 01 9 А LD,(9A01) LD B,A 8004 Е 6 01 AND С 2 0 А 80 JP Z,800A М 2: HALT 800 А 78 М 1: LD A,B 800 В LD(8001) A 800 Е С JP 8009

Выбрать из первого массива все числа имеющие единицу во втором и пятом разрядах и записать во второй массив. Адрес Машин. код Метка Мнемокод Примечание А LD Н,9 А А LD D,9 А LD B, Е М 2: LD А, М F LD C, А 800 А Е 6 24 AND С СА JP Z, F 79 LD A,C LD D,A INC D M1: INC H DEC B C JP NZ І 7 76 HALT

При организаци умножения нужно уметь следующее : Анализировать разряды множителя. Если разряд множителя равен 0, то соответствующее множимое к промежуточной сумме не прибавляется. Если же разряд множителя равен 1, то к промежуточной сумме добавляется множимое ; Значение промежуточной суммы должно постоянно сдвигаться ; Промежуточную сумму можно сдвигать влево и тогда анализ каждого разряда множителя нужно начинать слева направо, либо промежуточную сумму можно сдвигать вправо и тогда анализ множителя нужно производить справа налево. В микропроцессорной технике обцчно производят сдвиг промежуточной суммы влево. Сдвиг влево осуществляется сложением содержимого регистра ( пары регистров ) самого с собой. При огранизации умножения разрядность произведения в два раза больше разрядности множителей. Так как обычно множители восьмиразрядные, то для хранения произведения используется пара регистров (HL). Таким образом будет осуществляться сложение самого с собой именно содержимого пары регистров HL. HL HL +HL. Итак, при организации умножения накапливаемый результат будет храниться в HL, в паре регистров DE будет храниться множимое ( ). Так как множители восьмиразрядные, то требуется вычислить восемь промежуточных сумм, а, следовательно, организовать восемь циклов расчета.

. ЦИКЛИЧЕСКИЕ ПРОГРАММЫ Циклические программы составляются тогда, когда необходимо повторить один или несколько операций многократно, например, при вычислении произведения двух двоичных чисел : _ При арифметическом умножении порядок точно такой же, как и при умножении десятичных чисел, далее все промежуточные суммы (4) складываются между собой.

При организаци умножения нужно уметь следующее : Анализировать разряды множителя. Если разряд множителя равен 0, то соответствующее множимое к промежуточной сумме не прибавляется. Если же разряд множителя равен 1, то к промежуточной сумме добавляется множимое ; Значение промежуточной суммы должно постоянно сдвигаться ; Промежуточную сумму можно сдвигать влево и тогда анализ каждого разряда множителя нужно начинать слева направо, либо промежуточную сумму можно сдвигать вправо и тогда анализ множителя нужно производить справа налево. В микропроцессорной технике обцчно производят сдвиг промежуточной суммы влево. Сдвиг влево осуществляется сложением содержимого регистра ( пары регистров ) самого с собой. При огранизации умножения разрядность произведения в два раза больше разрядности множителей. Так как обычно множители восьмиразрядные, то для хранения произведения используется пара регистров (HL). Таким образом будет осуществляться сложение самого с собой именно содержимого пары регистров HL. HL HL +HL. Итак, при организации умножения накапливаемый результат будет храниться в HL, в паре регистров DE будет храниться множимое ( ). Так как множители восьмиразрядные, то требуется вычислить восемь промежуточных сумм, а, следовательно, организовать восемь циклов расчета.

B 08 HL 0 DE A HL HL+HL A СЛ A ТСТС HL HL+DE B B-1 ТZТZ M1 M2 0 1 Алгоритм циклической программы для расчета произведения 2-х 8-разрядных двоичных чисел

Блок 1: Производится организация счетчика циклов. Так как требуется произвести умножение 8- разрядных чисел, т. е. организовать 8 циклов, в регистр В записывается число 8. Блок 2: В HL записывается 0 – первоначальное обнуление пары регистров HL для правильного накопления результатов промежуточного суммирования. Блок 3: Запись в пару регистров DE значения множимого. Т. к. значение множимого 8- разрядное, а пара регистров DE – 16 разрядная, то в D записывается 0, а в Е – множимое. Блок 4: Запись в аккумулятор множителя. Блок 5: Сдвиг влево содержимого пары регистров HL ( результат промежуточного суммирования ). Блоки 6, 7: Анализ значений разряда множителя ( анализ производится слева направо ). Блок 8: Получение промежуточной суммы (5 и 8 блоки работают в паре ). Блоки 9, 10: Организация цикла программы.

Программа : К 1. MVI B, 08 К 2. LXI H, 0 К 3. LXI D, К 4. MVI A, К 5. M1: DAD H К 6. RLC К 7. JNC M2 К 8. DAD D К 9. M2: DCP B К 10. JNZ M1