Главная » Просмотр файлов » М.Х. Джонс - Электроника практический курс

М.Х. Джонс - Электроника практический курс (1055364), страница 86

Файл №1055364 М.Х. Джонс - Электроника практический курс (М.Х. Джонс - Электроника практический курс) 86 страницаМ.Х. Джонс - Электроника практический курс (1055364) страница 862017-12-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 86)

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

Это содержимое может потребоваться основной программе снова позднее, и поэтому промах в сохранении и восстановлении содержимого регистров может привести к тому, что соответствующие данные будут изменены во время исполнения программы обработки прерывания, что приведет впоследствии к ошибке, когда будет продолжена основная программа. Обычно данные из регистров сохраняют, помещая их в специальную область памяти, отведенную под «стек», откуда их можно извлечь в обратном порядке (последним пришел — первым вышел; (лзг-!Х Г!гзг-Оиг, 1.1ГО) после того, как завершится подпрограмма обработки прерывания.

Сам процессор в ответ на требования, поступающие на входы )4М! и 1КО, сохраняет содержимое счетчика команд и регистра состояния с тем, чтобы позднее восстановить его при выполнении команлы КТ! («возврат из прерывания»). Приход запроса на прерывание подобен телефонному звонку на столе у чиновника — он немедленно оставляет работу, которой был занят, чтобы ответить по телефону, аккуратно откладывая в сторону свои частично обработанные бумаги и освобождая место для блокнота, куда он записывает телефонные сообщения; но после звонка он готов вернуться к своей работе.

Забавно представить себе процессор без входов прерывания как контору, где в телефонных аппаратах нет звонков. Тогда нужно поручить кому-нибудь каждые несколько секунд поднимать трубку, чтобы проверить, не звонит ли кто — это эквивалентно опросу порта ввода. 470 МикроЭВМ и их применения Прерывания жизненно необходимы для миогозадачиой операционной системы, например, для такого важного программного обеспечения, каким является «1У1пбоаз», которое дает возможность процессору делать вид, что ои выполняет несколько действий сразу.

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

Чтобы познакомиться с этим свойством, запустите следуюшую программу, набрав К~ЗН: 10 РОК 1 = 1 ТО 5000 20 РК1ХТ «ЗАНЯТ» 30 )ЧЕХТ Оиа займет процессор, и будет казаться, что ои занят все время, заполняя экран словом «ЗАНЯТ», Теперь, когда эта программа работает, введите с клавиатуры слово ЫБТ и нажмите клавишу <гегогп>. Немедленно ничего ие произойдет, ио через несколько секунд, когда вывод слова «ЗАНЯТ» закончится, процессор откликнется иа введенную вами команду и выведет листинг (текст) программы. Процессор, вылолиявший программу, был прерван обрашеиием с клавиатуры, иа время, достаточное для того, чтобы поместить слово Е1БТ в буфер клавиатуры в ОЗУ перед тем, как возобновить вывод иа экран.

С точки зрения оператора все выглядело так, как если бы компъютер делал два дела сразу. В микроЭВМ ВВС М(сто сигнал прерывания нужно подавать на вход СВ1 порта пользователя. Приводимая ниже программа, написанная иа языке ассемблера, иаглядио проиллюстрирует процедуру прерывания. Предполагается, что эта программа будет введена после программы ЕХР(.ОКЕ. Ее осиовиая часть — строки с 1010 по 1040 — названа «(пгеп врггошше» (подпрограмма прерывания); оиа содержит фактическую программу, которую выполняет процессор после прихода извне прерывания иа вход СВ1. Записав содержимое аккумулятора в стек, подпрограмма выполняет затем свое главиое действие — переносит данные с порта ввода иа порт вывода и таким образом в явном виде указывает иа то, что поступил запрос лрерываиия, независимо от чего-либо другого, что происходило в это время.

Подходяший эксперимент состоит в том, чтобы, удерлсивая функциональную клавишу 5 в нажатом положении, заставить повторяться подпрограмму «соцпИочгп» (из программы ЕХРЕОКŠ— Прим. перев.). Если, ие отпуская фуикциоиальиую клавишу 5, вы иа короткое время с ломошью ключа подадите иа вход СВ1 логическую 1, то это вызовет запуск процедуры прерываиия. В этот момент независимо от того, в каком месте счета в обратном Как отвлечь процессор от выполняемой программы? 471 направлении окажется подпрограмма «соцп10озчп», содержимое порта вывода будет обновлено в результате записи в него новой комбинации логических 0 и 1, заданной ключами иа входах порта ввода.

1000 КЕМ эксперименты с подачей сигналов прерываний иа вход СВ1 порта пользователя 1010 [ 1020 йпгепорггоойпе 1030 РНА '1 запись содержимого аккумулятора в стек 1040 ЕОАкГЕ60 1 загрузка в аккумулятор данных из порта ввода 1050 БТАГЕвгб! 1, копирование содержимого аккумулятора в порт вывода 1060 Р1.А ~ восстановление содержимого аккумулятора из стека 1070 КТ! '1 возврат в основную программу из перываиия 1080 .епаЫе(пгегпзр1 1090 1.РАФО 1100 БТАкГЕ6С 1 занесение нуля в ячейку 8гГЕбС иа короткое время является командой для ИС сопряжения отреагировать на отрицательный перепал напряжения иа входе СВ1 1110 1.!)АФссбГ 1120 БТАкГЕ6С 1 занесение в ячейку кГЕбС значения Або запрещает реагировать иа все прерывания, кроме поступающего со входа СВ! 1130 1.13АФй90 1140 5ТА8гГЕБЕ 1 занесение в ячейку 8гГЕ6Е значения к90 разрешает перываиие со входа СВ1 1150 ле1«есгог 1160 1.ОАФ!птегпюр1гоцг!пе МО!3 256 '1 загрузка в аккумулятор младшего байта адреса, соответствующего метке «ш1еггор1гоцйпе» 1170 БТАк0206 '1 запись в младший байт вектора прерывания младшей части указателя иа «!пгепор1гоо!пе» 1180 1.ОАФ!пгепцрггои1!пе !3! ч' 256 '1 загрузка в аккумулятор старшего байта адреса, соответствующего метке «бп1еггцр1гоцйпе» 1190 БТАк0207 '1 запись в старший байт вектора прерывания старгдей части указателя иа «шгепцр1гощше» 1200 КТБ '1 возврат в Бейсик 1210 ) 1220 КЕМ программа начинает выполняться пуском «епаЫе!пгеггцрг» (разрешеиие прерываний), за которым сразу же следует исполнение части «зегчес1ог» (устаиовка вектора прерываний); тем самым осуществляется инициализация компьютера, в результате которой ои исполняет «!п1епоргошше» всякий раз, когда на вход СВ1 поступает импульс прерывания 1230 СА!Л епаЫецпепцрг 472 МикроЭВМ и их нрименения Комментарии в программе объясняют функции различных операторов; мы видим, что для правильной обработки прерывания необходимо не только включить сохранение и восстановление регистров (в данном случае используется только аккумулятор), но также в занесении адреса начала нашей программы «1пгеггирггоиг(пе» в ячейки памяти с адресами е«206 и вг207, где у операционной системы микроЭВМ ВВС М(сто храниться «вектор», указывающий на подпрограмму прерывания.

Когда сигнал прерывания на входе СВ1 принимает активное значение, ИС сопряжения с внешними устройствами вырабатывает импульс непосредственно на входе требования прерывания (! КО) центрального процессора. Процессор немедленно обращается к ячейкам памяти ВЕЕРЕ н яГГГЕ, чтобы прочесть в них адрес (это встроенное свойство процессора 6502).

Размещенная в ПЗУ операционная система микроЭВМ ВВС М(сто хранит в этих ячейках адрес вгРС1С, так что процессор совершает безусловный переход и исполняет небольшую подпрограмму, начинающуюся с ЙРС1С. Эта подпрограмма путем опроса, прежде всего, проверяет, не пришел ли запрос на обслуживание от какого-либо из внутренних узлов системы; если обнаруживается, что никто из них не выработал требование прерывания, то управление передается по адресу, хранящемуся в ячейках х206 и вг207, куда мы поместили адрес начала подпрограммы «1пгеггцрггоцг(пе».

Важно отметить, что процедура переадресации процессора при прерывании по вектору прерывания включена только в версии операционной системы для микроЭВМ ВВС М(его 1.0 и выше. Как обычно, набрав К()Х, вы запустите трансляцию программы, за которой сразу же последует исполнение оператора САЕЕ епаЫепйегщрг в строке 1230. Это приведет к пуску подпрограммы «епаЫе(пгеггирг», за которой следует подпрограмма «зещесгог». Первая из этих подпрограмм производит установку схемы сопряжения с внешними устройствами в режим чувствительности к прерываниям на входе СВ1, а вторая подпрограмма помешает в ячейки дь206 и к207 адрес, соответствующий метке «)пгегп~рггоцг!пе», в качестве готового вектора прерывания. Таким образом, программирование прерываний требует внимания: для реализации простого по своей сути принципа нужно все же выполнить довольно много команд, чтобы все происходило именно так, как залумано.

Характеристики

Тип файла
DJVU-файл
Размер
4,65 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее