Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Команды ввода вывода






 

Особенностью микропроцессора КР.580ИK80A, отличающей его от других, даже более развитых систем, является возможность организации ввода – вывода двух типов: по специальным командам; по аналогии с обращением к памяти.

Ввод – вывод с помощью специальных команд называется аккумуляторным (изолированным) вводом – выводом. В этом случае адресное пространство портов ввода и вывода отделяется от адресного пространства памяти, которая может занимать все адресное пространство (64 К).

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

Значение слов IN и OUT уже были даны выше. Соответствующие команды имеют двухбайтный формат: второй байт указывает непосредственно номер устройства (адрес), из которого информация должна быть введена в аккумулятор или, наоборот, в которое должно быть послано содержимое аккумулятора (табл.2.5). При восьмиразрядных адресах возможно обращение к 256 портам ввода и 256 портам вывода.

 

Таблица 2.5. Команды ввода – вывода и специальные

 

Функция Перевод Мнемоника
Ввод In IN < B2>
Вывод Out OUT < B2>
Разрешено прерывание Enable Interrupt EI
Запрещено прерывание Disable Interrupt DI
Повторный пуск Restart RST
Останов Halt HLT
Нет операции (холодная команда) No Operation NOP

 

 

Специальные команды используются главным образом для организации прерываний. Когда выполняется начальная установка микропроцессора КР.580ИK80A, он будет игнорировать все запросы на прерывание, поступающие от внешних устройств. Перевести его в состояние, при котором возможны прерывания программы, можно только по команде разрешения прерываний ЕI – Enable Interruption (возможно прерывание) по программе. О переходе в такое состояние центральный процессор информирует систему посредством установки сигнала уровня логической 1 на выводе INTE (Interruption Enable) БИС центрального процессора.

При поступлении запроса на прерывание и есть разрешение на его выполнение, то состояние, при котором возможно прерывание, автоматически прекращается (сигнал INTE равен 0), но может быть восстановлено повторной подачей сигнала ЕI. Эту команду можно подать сразу после получения запроса на прерывание, тогда сигнал INTE будет равен 1 и, следовательно, программаобработки прерывания, в свою очередь, может быть прервана новым запросом (организацией вложения прерываний). Если команда ЕI подается только в конце программы обработки прерываний, тогда вложения невозможны.

Сигнал INTE может быть переведен в логический 0, т.е. возможность прерывания снята либо автоматически: при запросах от аппаратных средств системы, либо путём подачи команды запрещения прерывания DI (Disable Interruption). Итак, в логический 0 сигнал INTE может переведён и сигналом INI и командой DI, но в логическую 1 его можно перевести только по команде EI.

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

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

Восемь бит команды рестарта имеют следующий вид:

RST 11 AAA 111,

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

Физически вектор прерывания ААА определяет один из восьми ареалов (областей) памяти. Каждый ареал памяти имеет протяженность в восемь байт и потому задается адресами (табл. 2.6.) Если программа обработки прерывания превышает 8 команд, то в ареал памяти должна быть включена команда JMP, т.е. безусловный переход к остальной части программы, которая может быть расположена в любом месте основной памяти.

Таблица 2.6. Начальные адреса ареалов памяти

 

Номер ареала памяти Начальный адрес (HEX) Номер ареала Памяти Начальный адрес (HEX)
       

 

В момент начала выполнения процессором команды прерывания, в программный счетчик заносится начальный адрес соответствующего ареала, и процесс продолжается вплоть до конца программы обработки прерываний. Этот конец должен содержать команду POP для восстановления содержимого всех регистров и команду RET(возвращение), по которой в программный счетчик заносится значение, имевшееся в нем в момент начала прерывания, и тогда происходит возврат к исходной точке. Команда RST в основном предназначена для обработки прерываний, но может использоваться также при отладке программы. В этом случае вектор прерывания указывает программист.

Команда HLT- Halt (останов) вызывает прекращение выполнения программы, содержимое программного счетчика при этом не увеличивается, но все текущие значения в регистрах сохраняются неизменными. Команду HLT легко подать, но из состояния останова трудно выйти. В микропроцессоре К580ИК80А прекратить состояние останова можно только прерыванием с последующей подачей команды рестарта на шину данных. Таким образом, каждой команде HLT должна предшествовать команда EI и всякий раз, когда происходит прерывание, необходимо новой командой EI восстановить возможность прерывания.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.