ЦП 8086 — это 16-битный микропроцессор серии Intel, имеющий 40 контактов. Его внешняя шина данных имеет разрядность 16 бит, а адресные линии — 20. Поскольку доступны 20-битные адреса, адресное пространство составляет до 1 МБ. (Отображает возможности адресации периферийной памяти)
ЦП 8086 имеет внутреннюю структуру параллельного конвейера, которая может улучшить загрузку ЦП и скорость обработки. ЦП 8086 был разработан для поддержки многопроцессорных систем (CISC).
Контроллер служит для управления вводом/выводом программ и данных, а также согласованной работы между различными компонентами. Арифметический блок служит для выполнения арифметических операций и логических операций, а также для сохранения результатов промежуточных операций. временно хранить информацию, и ее информацией могут быть данные, подлежащие обработке, или адрес для получения определенных данных в памяти.
Блок-схема внутренней структуры Intel 8086: обязательный экзамен
В1: Что самое знаковое в каждой части? например: в 8086 нет FPU, только ALU, только идея кэша, но нет реального кэша.
Блок интерфейса шины BIU
BIU — это интерфейс между ЦП и внешней памятью, а также вводом и выводом, который отвечает за обмен данными. БИУ состоит из следующих частей:
Исполнение часть ЕС:Ответственный за инструкцииосуществлять
Управление действиями для BIU и ЕС
Набор регистров общего назначения
регистр данных регистр данныхвключатьAX、BX、CX、DXждать4индивидуальный16-битный регистр,В основном используется для хранения операндов, промежуточных результатов и адресов арифметических и логических операций. Они доступны как в 16-битном регистре.,Вы также можете разделить старший и младший байт каждого регистра и использовать их как два независимых регистра 8Кусочек. 8Кусочек регистров (AL, BL, CL, DL, AH, BH, CH, DH) можно использовать только для хранения данных.
Указатель адреса и индексный регистр
неявная адресация
Специальные назначения и неявные свойства регистров общего назначения в ЦП 8086.
Формирование физического адреса 8086
Фотография выше должна быть сделана
набор сегментных регистров
регистр управления
контрольный флаг Флаги управления — это флаги, используемые для управления рабочим режимом или рабочим состоянием ЦП. Пользователи могут использовать команды для установки или очистки.
каждыйинструкцияизобъяснятьосуществлятьпроцессвключатьполучить инструкциииосуществлятьинструкциядваиндивидуальныйшаг,ЦП получает команду и выполняет ее.,Необходимо выполнить ряд операций,эта сериядействоватьнеобходимыйизчаспространство обычно называютиндивидуальныйцикл инструкций。Зависит отв каждомдобрыйинструкцияиздействовать Функциядругой,Поэтому каждыйдобрыйинструкцияизцикл инструкцийда Не то же самоеиз。Соответствующие инструкцииосуществлятьизтрииндивидуальныйэтап,цикл инструкции обычно делятся на: цикл выборки, цикл выборки операндов и цикл выполнения. (1) Цикл выборки Цикл выборки — это время, необходимое для получения инструкции. В цикле выборки команд ЦП в основном выполняет две операции: 1) выборку инструкций по содержимому счетчика программ ПК; 2) формирование адреса последующих инструкций. цикл выборки = (Длина инструкции / Длина слова хранения) × Цикл чтения/записи основной памяти
(2) Получить цикл операнда Цикл выборки операнда — это время, необходимое для выборки операнда для выполнения инструкции. Длина цикла выборки операндов зависит от количества операндов, физического расположения операндов и режима адресации операндов. (3) Цикл выполнения Цикл выполнения — это время, необходимое для завершения операций, указанных инструкцией, и отправки результатов. Это связано со сложной программой работы, указанной в инструкции, а также с физическим расположением и режимом адресации операнда-адресата. Код состояния в информации о состоянии сохраняется в слове состояния программы PSW во время цикла выполнения. Если инструкция является командой передачи, адрес передачи также будет сгенерирован в этом цикле.
цикловые инструкции часто занимают несколько циклов процессора (читайте、переводить、осуществлять、напишите ответ), чтобы выразить,CPUцикл, также известный какмашинный цикл。Зависит от ВCPUвнутреннийиздействовать Быстрее,Процессору требуется много времени, чтобы получить доступ к Память один раз.,Так обычноОпределите цикл ЦП как минимальное время, необходимое для чтения командного слова из памяти.。То есть,один кусочекинструкцияиз Выбиратьвнеэтап(принести)нужен одининдивидуальныйCPUциклчасмежду。иодининдивидуальныйCPUциклчасмежду又包含有нравиться Сухойиндивидуальныйтактовый цикл(Часто называют ударным пульсом илиTцикл,этодаиметь дело сдействоватьизсамая базовая единица(Минимальный заказ Кусочек))。тактовый Цикл — это базовое время ЦП, которое определяется основным тактовым импульсом компьютера. Ряд операций, которые выполняют каждую инструкцию и каждый цикл шины, выполняются синхронно с тактовым импульсом. Эти тактовые Сумма циклов определяет продолжительность цикла ЦП. Во время выполнения инструкций ЦП должен занять системную шину для доступа к Память или внешним устройствам, чтобы прочитать получение из Память или периферийного интерфейса. инструкцииилиинструкциянеобходимыйиздействоватьчисло。ЦП занимает системную шину один раз, а время, необходимое для ввода и вывода информации, называется циклом шины.
Часы и тактовые генераторы
• Системный тактовый сигнал (основная частота), необходимый для 8086.,Можно использовать кристалл кварца или кристалл TTL. По разным источникам колебаний,8284A有двадобрыйдругойизсоединятьметод:Один из них — использоватьГенератор импульсов как источник колебаний,Другой способ — использоватьКварцевый генератор как источник колебаний。
8086 Режим работы процессора
8086 Работа и синхронизация шины ЦП
Операции ЦП 8086 можно разделить на два типа: внутренние операции и внешние операции. Внутренние операции — это процесс выполнения инструкций внутри ЦП. Внешние операции — это процесс обмена информацией между ЦП и внешними операциями. на автобусные перевозки. Основные операции шины 8086 включают в себя: операции сброса и запуска системы, операции чтения/записи шины, операции удержания шины или операции запроса/разрешения шины, операции ответа на прерывание, операции паузы и бездействия.
8086 базовый цикл шины
Самый базовый цикл шины 8086 состоит из 4 тактовых циклов, представленных T1, T2, T3 и T4 соответственно, называемых состояниями T1, T2, T3 и T4. В состоянии T1 ЦП выводит сигнал адреса и сигнал адреса. Состояния T2, T3 и T4 передают данные. Если передача данных не может быть завершена в состояниях T2, T3 и T4, вставьте Tw между состояниями T3 и T4.
Состояние Tw также называется состоянием ожидания или периодом ожидания.,Когда ЦП читает и записывает память или обменивается информацией с периферийными устройствами.,Чтобы соответствовать скорости памяти или периферийных устройств,существоватьT3Вставить после статусаиз1индивидуальныйили多индивидуальныйждатьобращатьсяцикл。Вставка состояния Tw достигается путем генерации сигнала WAIT через схему формирования сигнала ожидания в системе, который синхронизируется тактовым генератором 8284 и затем передается на линию READY ЦП.,в это время,Статус в автобусе остается неизменным,для передачи данных,Когда ЦП получает действительный сигнал READY,Передача данных завершена,Войдите в состояние Т4. После статуса Т4,Он вот-вот перейдет в состояние Т1 следующего цикла шины.,в противном случае,войти в состояние ожидания,Это называется состоянием Ti.
Краткое описание: Внутреннее ожидание шины равно Tw, а время ожидания между двумя циклами шины равно Ti.
8086 запрос и ответ шины
Сигнал управления шиной в минимальном режиме 8086 генерируется непосредственно ЦП. Для управления шиной используются сигналы HOLD (сигнал запроса шины, вход) и HLDA (сигнал ответа шины, выход). Когда другим компонентам системы, таким как контроллер DMA, необходимо занять шину, они посылают сигнал запроса шины HOLD в ЦП. После того, как ЦП получит действительный сигнал HOLD, если ему разрешено отказаться от шины, он отправит сигнал HLDA, когда текущий цикл шины будет завершен, и в то же время переведет шину адреса/данных и шину управления в режим ожидания. В состоянии высокого импеданса, указывающем, что шина будет отключена в следующем тактовом цикле, компонент запроса шины получает сигнал HLDA и получает управление шиной. В течение этого периода как HOLD, так и HLDA остаются на высоком уровне до тех пор, пока компонент запроса шины не завершит занятие шины, что приводит к переходу HOLD на низкий уровень и отмене запроса шины. После того, как ЦП получает его, сигнал HLDA переходит на низкий уровень. ЦП возобновляет работу. управление автобусом.
Память:
Память является основным компонентом компьютера для реализации функции памяти. Она используется для хранения необработанных данных, подлежащих обработке, промежуточных результатов вычислений, системных или пользовательских программ и т. д. Память компьютера делится на две категории:
1、внутренняя память Используется для хранения информации, которой в настоящее время часто обменивается процессор. Работает быстро, но имеет небольшую емкость.
2、внешняя память Она используется для хранения информации, не обрабатываемой процессором. Она имеет большую емкость, поэтому ее называют массовой памятью. Для доступа к внешней памяти требуются специальные интерфейсы и приводные устройства, а скорость доступа намного медленнее, чем у памяти. Когда информацию необходимо обработать, ее сначала необходимо перенести в память, а затем обработать ЦП.
В основном представляем внутреннюю Память:
внутренняя память,также известный какПамять,это основная память,Кусочек внутри хоста компьютера,используется дляХраните системное программное обеспечение, а также используемые в настоящее время или часто используемые программы и данные.,Памятьиз Вместимость зависит отприезжатьбиты адресной шиныизпредел,Например8086 ЦП имеет 20 адресных шин, а адресное пространство составляет 1 МБ.
Сегментация адресов памяти:
Фактический адрес любой единицы хранения состоит из двух частей: адреса сегмента и адреса смещения внутри сегмента. Единица хранения может быть определена в одном сегменте или в логическом сегменте из двух сегментов. Главное — увидеть, как указывается первый адрес сегмента. ИБМ PCмашинаверночастьиз首адрес有предел,Оговорено, что он должен начинаться с первого адреса каждого абзаца (параграфа), а каждые 16 байт — это небольшой абзац.,такНачальный адрес сегмента должен делиться на 16.。
В системе 8086 ЦП имеет 16 линий данных, а базовая единица (байт) памяти имеет 8 линий данных. Поэтому система хранения обычно делится на память с четным телом и память с нечетным телом для подключения к 8086.
Информация, хранящаяся в памяти, называется содержимым единицы хранения. Например, содержимое единицы хранения 00100H равно 34H, что выражается как (00100H) =. 34H。одининдивидуальный Характерсуществоватьпамятьсередина按相邻дваиндивидуальный Характер节магазин,и ДепозитчасСохраняйте в том порядке, в котором младший байт находится по младшему адресу, а старший байт — по старшему адресу.(формула),Адрес словной единицы представлен младшим адресом Кусочка. Слово можно хранить, начиная с четного адреса.,Вы также можете начать хранение с нечетного адреса.,Однако когда ЦП 8086 обращается к памяти, это осуществляется в словах и начинается с четного адреса. Когда ЦП читает/записывает слово, если адрес единицы слова начинается с четного адреса, то доступ к памяти требуется только один раз, с младшим байтом в четном адресном блоке и старшим байтом в нечетном. адресный блок. Если адрес словной единицы начинается с нечетного адреса, то ЦП необходимо дважды обратиться к памяти.,Получить данные по нечетному адресу в первый раз (игнорируя данные 8Кусочек по четному адресу),Получить данные по четному адресу в первый раз (игнорируя данные 8Кусочек по нечетному адресу),Поэтому, чтобы ускорить работу программы,При программировании обратите внимание на сохранение словных данных, начиная с четного адреса памяти.,Этот тип хранилища также называется «выровненным хранилищем».
стековая организация
Адрес запоминающего устройства в сегменте стека определяется регистрами SS и SP. Регистр стека SS хранит базовый адрес стека.,Указывает логический сегмент, в котором расположен стек. Регистр указателя стека SP хранит адрес вершины стека;,Прямо сейчас Всегда указывает на последнее, что было помещено в стек.изчисло据所作изединица。存储единицаизадрес Зависит от(SS)×16+(SP)форма。В зависимости от того, как устроен стек, указатель стека SP может указывать на текущую вершину. блок стека, также вершина «Пустой» объект на стеке, обычно использующий SP для указания текущей вершины. стекаединица,Направление растяжения стека может быть от больших адресов к меньшим.,Вы также можете перейти от маленького адреса к большому. **Стек 8086 простирается от больших адресов до маленьких адресов. **Выполнение вычитания
Специальные операции стека
Операции со стеком выполняются в словах, а данные в стеке должны храниться в обычных словах. (Из-за выравнивания четных адресов) **Младший байт находится в блоке четного адреса, а старший байт — в блоке нечетного адреса. **Загрузка данных в стек называется «проталкиванием»; извлечение данных из стека называется «извлечением». При «отправке» данных сначала измените значение SP, то есть отправьте (SP)-2 в SP, а затем сформируйте физический адрес памяти с помощью SS для хранения данных. При «выталкивании» данных сначала вынимают данные из физического адреса, образованного текущими СС и ИП, а затем модифицируют ИП, то есть (СП)+2 отправляют в СП. Операции со стеком выполняются по правилу «последним пришел — первым ушел». ЦП 8086 имеет специальные инструкции для выполнения операций «вставления» и «выталкивания». В этих инструкциях SP изменяется автоматически.
Что следует отметить о стеке
1. Первым пришел, последним ушел 2、PUSH POP появляется парами Например: содержимое BX, CX и DI необходимо защитить в определенной подпрограмме. PUSH BX PUSH CX PUSH DI …… POP DI POP CX POP BX
Фокус: проектирование 8/16-битной памяти, выбор адреса декодирования, подключение схемы.
1. Подключение адресных линий чипа
Декодирование, диапазон декодируемых адресов: от 000…000 (все N бит равны 0) до 111…111 (все N бит равны 1).
2. Обработка выбора чипа
расширение бита означает увеличение длины слова хранения. расширение бита Может принести пользуиспользоватьчипадрес并联из Способвыполнить,Прямо сейчас ВоляЛинии данных каждого чипа подключены к каждому биту шины данных.,Адресные линии, линии сигналов чтения/записи и линии сигналов выбора чипа каждого чипа соответствуют заземлить вместе. Например: две микросхемы SRAM 2114 размером 1 КБ × 4 бита, требуемая память размером 1 КБ × 8. бит.
расширение памяти Конструкция бита представлена на рисунке ниже. На картинке адресные линии и линии управления двух 2114 соединены параллельно, а **1# Линия данных чипа подключена к младшим 4 битам шины данных, 2#. Линия данных чипа подключена к старшим 4 битам шины данных. **После аппаратного подключения можно определить адрес блока хранения, то есть статус кодирования A9~A0 000H~3FFH является адресом блока хранения 1 КБ. Распределение адресов показано в таблице ниже.
расширение слова относятся к увеличению количества слов в памяти, расширению Слова могут быть реализованы путем последовательного объединения адресов чипов. Например: используйте две микросхемы ОЗУ 6116 размером 2 КБ × 8 байт, чтобы сформировать память 4 КБ × 8 байт.
расширение Дизайн слов показан ниже. На рисунке две встроенные сигнальные линии 6116 A10~A0, D7~D0,OE нет, МЫ нет соответственно подключены к адресным линиям системы A10~A0.、Линии данных D7~D0 и линии управления чтением/записью.、соединять。Линия сигнала выбора чипа микросхемы 1# подключена к A11, а линия сигнала выбора чипа микросхемы 2# инвертируется и подключается к A11. Когда A11 имеет низкий уровень, выберите чип 1# для чтения/записи. Когда A11 имеет высокий уровень, выберите чип 2# для чтения/записи;。Зависит от Видно ниже,1#чипизадрес范围да000H~7FFH,2#чипизадрес范围да800H~FFFH。Распределение адресов показано в таблице ниже.。
Характерирасширение битадарасширение словаирасширение Комбинация бита. Например: четыре микросхемы ОЗУ 2114 размером 1 КБ×4 бита образуют память размером 2 КБ×8 бит.
① Определите расположение памяти во всем пространстве хранения на основе фактической установленной емкости системы хранения. ② Выберите правильный чип памяти,списоктаблица распределения адресов。 ③ Следовать таблице распределения адресов Выберите устройство декодирования,Нарисуйте соответствующую картинку адреса Кусочек.,по очередиОпределить строки выбора и адреса микросхемы внутрикристального блока.,а потомНарисуйте схему декодирования выбора чипа。 ④ Нарисуйте память иCPUсистема总线изСхема подключения。
Пример: Спроектируйте 32КБемкость для машины с 8Кусочками (адресная шина — 16Кусочек). памяти. Просьба принять 2732Состав чипаОбласть EPROM 8 КБ,адресот0000HСтарт: принять 6264;Состав чипа24 КБ оперативной памяти,адресот2000Hначинать。Выбор фильма СигналиспользоватьПолный метод декодирования。
• Первым шагом является определение количества микросхем ОЗУ, необходимых для создания банка ОЗУ объемом 24 КБ. Поскольку каждый чип 6264 обеспечивает емкость хранения 213×8 бит, количество микросхем ОЗУ, необходимое для достижения емкости хранения 24 КБ, равно Таким образом, объем оперативной памяти = 3 (ломтика) • Вторым шагом является определение количества микросхем EPROM, необходимых для создания банка памяти ROM объемом 8 КБ. Поскольку каждая микросхема 2732 обеспечивает емкость памяти 212 × 8 бит, количество микросхем EPROM, необходимое для достижения емкости памяти 8 КБ, равно числу EPROM = 2 (чипы). • Третий шаг — генерация сигнала выбора микросхемы памяти и проектирование схемы. Сигнал выбора чипа генерируется с использованием метода полного декодирования декодера 74LS138.
A12~A0 служат внутрикристальными адресными линиями, A15~A13 служат входом декодера 3-8 74LS138, а сгенерированный выход декодирования 000~011 служит сигналом выбора чипа.
Типичное автобусное сообщение
Соединение ЦП 8086 с вводом/выводом
инструкции по входу/выходу
8086 Система прерываний ЦП
(Для внешних интерфейсов это внешнее прерывание, для внутренних интерфейсов это внутреннее прерывание)
•ЦП 8086 имеет простую и гибкую систему прерывания.,Принять векторный тип прерывать структуру,Может обрабатывать до 256 запросов на прерывание разных типов. Существует два типа источников прерывания ЦП.,внутреннийпрерыватьивнешнийпрерывать,внешнийпрерывать Также делятся на неэкранированныепрерыватьNMIи ЭкранируемыйпрерыватьINTR。НеэкранированныйNMIпрерывать(не может быть заблокирован,обеспечивать соблюдение,Сигнал запроса самого высокого уровня срабатывает по нарастающему фронту,Как только сигнал действителен,прерывать сразу после исполнения текущего ордера,Выполнить соответствующий обработчик прерывания,Незачемпрерыватьответцикл。иЭкранируемое прерывание отправляет сигнал запроса на прерывание в ЦП через INTR.,Если ЦП открыт, остановить,После выполнения текущей команды он входит в цикл ответа «Прервать».,прерыватьответциклзаниматьиспользоватьдва автобусных цикла。
Внешнее прерывание (аппаратное прерывание)
Вызывается подачей действительного сигнала запроса на прерывание на внешний сигнальный вывод запроса на прерывание ЦП.,разделен наНеэкранированныйпрерыватьNMIиЭкранируемыйпрерыватьINTR 1)НеэкранированныйпрерыватьNMI
2) Маскируемое прерывание INTR
Разница между аппаратными прерываниями и программными прерываниями
Маскируемый процесс обработки прерываний
•Экранируемыйпрерыватьиметь дело сизпроцессв целомразделен на几步:прерыватьпросить;прерыватьответ;Защитите сцену;перевод восуществлятьпроцедура обслуживания прерываний;восстановить сценуипрерыватьвозвращаться。 Существует несколько условий, при которых ЦП должен отреагировать на прерывание.: 1) Периферийное устройство подает заявку на прерывание; 2) Этот бит прерывания не маскируется; 3) Это прерывание имеет наивысший приоритет. 4) ЦП разрешает прерывания;
8086 Система прерываний ЦП
когдапрерыватьсхема интерфейсасерединаизпрерывать Блокировать триггер не заблокированчас,Периферийные устройства могут выдавать запросы прерывания через интерфейс прерывания. Время, когда периферийное устройство выдает запрос на прерывание, является случайным.,ЦП производит выборку входной строки запроса прерывания INTR в последнем состоянии T последнего машинного цикла каждой инструкции.,когдаCPUсуществоватьНа вывод INTR был получен действительный сигнал запроса на прерывание.,иВнутреннее прерывание ЦП позволяет открывать триггеры,Затем ЦП отвечает прерыванием после завершения текущей инструкции. После ответа ЦП остановить,вернопрерывать Схема интерфейса отправляетДва сигнала ответа «прервать» ИНТАНет ,когдапрерыватьсхема интерфейса收приезжатьвторой ИНТАНет После этого номер типа прерывания отправляется в ЦП по линии данных.
Четыре этапа реагирования на прерывания
1. Стадия запроса и ответа на прерывание
2. Прерывание этапа автоматической обработки.
3. Этап обслуживания прерываний
4. Возврат по прерыванию
•В системе 8086прерывать используется метод векторного прерывания.,Каждыйиндивидуальныйпрерывать源都有одининдивидуальныйдляэто服务изпрерыватьсервисная программа。8086Максимум может справиться256индивидуальныйпрерывать,Соответствующие номера типов: 00H~FFH.,Называется номер типа прерывания или номер вектора прерывания.,Это единственный признак, позволяющий определить источник прерывания. •Каждыйодининдивидуальныйпрерыватьсервисная программа都有одининдивидуальныйОпределен адрес входа,该адресназываетсяпрерыватьвектор。 •Пучоксистемасерединавсеизпрерыватьномер типаиверноотвечатьизпрерыватьвектор按один定из Хранить регулярносуществоватьодининдивидуальныйвнутри зоны(1KB)00000H (начальный адрес)~003FFH,(Обратите внимание, что это пять Кусочек),Эта область называется таблицей векторов прерываний.,То есть прерывать таблицу входных адресов.
(Примечание: в области 1 КБ всего 1024 байт, а номер типа прерывания равен 4 байт, поэтому всего можно разместить 1024/4. = 256индивидуальныйпрерыватьвектор)Среди них старшие 16 бит (2B) и младшие 16 бит (2B).
В системе 8086,Таблица векторов прерываний устанавливается в диапазоне адресов памяти 00000H~003FFH.,Занимает 1 КБ пространства,Каждый вектор прерывать занимает 4 единицы памяти.,Первые 2 блока из 4-х хранят смещение Данай, где находится сервисная программа «Выключить» (содержимое IP-адреса).,адрес 16Кусочек),Младшие байты Кусочка хранятся по младшему адресу.,высокий Кусочек Характер节магазинсуществоватьвысокийадрес;В последних двух блоках хранится базовый адрес сегмента, в котором находится сервисная программа прерывать (содержимое CS,адрес 16Кусочек),Способ хранения такой же, как и у предыдущих 2 единиц. Когда ЦП реагирует на прерывание,от Таблица векторов Найдите адрес вектора прерывания, а затем извлеките содержимое из адреса и загрузите его в IP и CS соответственно, тем самым выполнив соответствующую сервисную программу прерывания. (Специализированные номера типов прерываний от 0 до 4 Всего 5, номера типов прерываний резервного копирования системы от 5 до 31, всего 27, 224 доступны для пользователей)
Номер типа прерывания резервного копирования системы
Разработано для Базовая система ввода и вывода BIOS, разработанная IBM PC, использует в общей сложности 11 номеров типов прерываний от 10H до 1AH.,нравитьсяINT 10H — вызов отображения экрана, INT 13H — вызов дискового ввода-вывода, INT 16H вызывается для ввода с клавиатуры, INT 1AH называется для часовждать,Это двухбайтовая инструкция остановить,Эти прерывания предоставляют пользователям ряд подпрограмм, которые обмениваются информацией напрямую с устройствами ввода-вывода. DOS прерывание занимает 20H~3FH, всего 32 номера типа прерывания (A0~BBH и 30H~3FH - номера зарезервированного типа DOS).,нравитьсяВызов системной функции DOS(INT 21H)основнойиспользовать Ввернофайл на дискеиз Управление хранилищем。
•8086прерывать тип Адрес с моделью 40H входа в программу обслуживания прерываниймагазинсуществовать Таблица векторов Начальный адрес прерывания: C. A 、DS:0040H B 、ES:0100H C 、0000:0100H D 、0000:0160H Пожалуйста, подробно опишите шаги для ответа. • Система 8086 создает таблицу в памяти по адресу 00000H~003FFH. векторов прерываний •MOV AX, 0 •(XOR AX, AX) •MOV DS, AX •(MOV ES, AX)
Номер типа прерывания n задает вектор прерывания.
1.Используйте инструкции для достижения
Базовый адрес сегмента SEG OFFSET адрес смещения
MOV AX,0
MOV ES,AX
MOV BX,N*4 ;Здесь N — векторное количество прерываний
MOV AX,(OFFSET РКДЗ); получить адрес сервисной программы прерывать смещения(Сначала остановисьIP)
MOV ES:WORD PTR [BX], AX; обратите внимание, что здесь можно использовать только [BX]
MOV AX,SEG RKDZ ;Получить базовый адрес сегмента сервисной программы прерывать
MOV ES:WORD PTR [BX+2],AX
RKDZ:
:
IRET;возврат
2.Реализовано с использованием вызовов функций DOS.
•настраиватьнаборпрерыватьвектор:Пучок Зависит отALсерединаобратитесь к定прерыватьномер типаизпрерыватьвекторDS:DX,помещатьнаборсуществовать Таблица векторов прерыванийсередина。 Предустановка: AL=номер типа прерывания. DS:DX = Адрес входа в программу обслуживания прерываний AH = 25H Исполнение: ИНТ 21H •Выбиратьпрерыватьвектор: Предустановка: AL=номер типа прерывания. AH = 35H Исполнение: ИНТ 21H Возврат:ES:BX = Адрес входа в программу обслуживания прерываний
Используйте вызовы функций DOS для установки и получения векторов прерываний.
;Сначала удалите ранее сохраненные
MOV AL, N ;Сначала поставьте оригинальную Таблицу векторов Возьмите значение из прерывания и поместите его в ES:BX.
MOV AH, 35H
INT 21H
; а затем разместите свой собственный
;настраиватьнаборпрерыватьвектор:
PUSH ES ;Сохарапрерыватьвектор
PUSH BX
MOV AX, SEG RKDZ ;Установить прерывать адрес сегмента вектора в DS
MOV DS,AX ;RKDZ дляпроцедура обслуживания прерываний
MOV DX, OFFSET RKDZ ;настраиватьнаборпрерыватьвекторадрес смещениясуществоватьDX
;вызов
MOV AL,N ;прерыватьномер типаn
MOV AH, 25H ;Установить вектор прерывания
ИНТ. 21H
……
;Основная программа, написанная пользователем, которая вызовет указанную выше подпрограмму прерывать
……
;Когда программа почти завершится, не забудьте восстановить исходный вектор прерывания:
;Переместить предыдущее назад
POP DX ;Восстановить исходный вектор прерывания
POP DS
MOV AL, N
MOV AH, 25H
INT 21H
Получение номера типа прерывания (см. видео)
• В векторных прерываниях адрес записи прерывания связан с номером типа прерывания. Как же получить номер типа прерывания? (1) Для ошибок деления, одношаговых прерываний, немаскируемых прерываний NMI, прерываний точки останова и прерываний переполнения ЦП автоматически предоставляет номера типов прерываний 0–4 соответственно. (2) Для программного прерывания, определяемого пользователем INT n, номер типа определяется n. (3) Для внешнего маскируемого прерывания INTR может быть спроектирована аппаратная схема (например, микросхема универсального параллельного интерфейса 8212) для генерации номера типа прерывания. (4) Для внешнего маскируемого прерывания INTR можно использовать программируемый контроллер прерываний 8259A для получения номера типа прерывания.
процедура обслуживания прерываний
• Сцена прерывания должна быть защищена в начале программы. Значения каждого регистра ЦП могут быть помещены в стек с помощью серии инструкций PUSH для защиты. •нравитьсяпозволятьпрерывать Вложенный,затем используйтеКоманда STI на открытие отключить,делатьпрерыватьпозволятьлоготипIF=1; •Выполнить обработчик прерываний; •использоватьКоманда CLI для отключения прерывать,Сделать прерывание флагом разрешения IF=0,Никакой другойпрерыватьпросить Входить; • Отправьте команду завершения прерывания EOI в регистр команд прерывания, чтобы очистить флаг запроса прерывания, обрабатываемого в данный момент, в противном случае запрос прерывания того же уровня или прерывания низкого уровня все равно будет замаскирован; •Восстановить сцену на момент прерывания и восстановить значения каждого регистра ЦП посредством серии инструкций POP; • Используйте команду возврата прерывания IRET для возврата в основную программу. В это время значение точки останова и значение флага, сохраненные в стеке, загружаются в IP, CS и флаги соответственно.
Процесс завершения подпрограммы:
Прервать вложенный процесс
Источник прерывания с низким приоритетом отправляет запрос прерывания в ЦП и получает ответ от ЦП. Если это запрос прерывания от источника прерывания с низким приоритетом или того же уровня, ЦП не ответит. Этот источник прерываний с высоким приоритетом прерывать Низкий приоритет прерывать сервис, выполняющий процедуру обслуживания прерываний Может Вложенныйруководитьизпроцесс,называетсяпрерывать Вложенный。
процедура обслуживания прерыванийи Разница между обычными подпрограммами(фокус)
Их основные отличия: 1、прерыватьсервисная программаитолькосуществоватьосуществлятьизпрограмма之междуданезависимы друг от другаиз;Обычные подпрограммы иCPUтолькосуществоватьосуществлятьиз主программа之междудаДве части одной программы。 2、вызов подпрограммыиспользоватьодин定дапрограммистсуществоватьписатьпрограммачас Договоритесь заранееиз,дапредсказуемый,А прерывание производится источником прерывания в соответствии с его собственными потребностями.,даНетпредсказуемый。кроме мягкогопрерывать(нравитьсяинструкцияINTпричинаизпрерывать),Обычно прерывать генерируется случайным образом.,ивызов подпрограммыиспользоватьдапроходитьТриггеры инструкций вызоваиз。 3、вызов подпрограммыиспользоватьдаиспользоватьИнструкция ВЫЗОВПриходитьвыполнитьиз,Адрес входа вызова указывается инструкцией вызова программы (т. е. меткой подпрограммы).,Но вызов сервисной программы прерывать,первыйда КCPUпроблемапрерыватьпроситьсобытие,Ряд условий определяет, следует ли реагировать на прерывать (команду INT также следует понимать как отправку внутреннего сигнала прерывать),прерыватьсервисная программаиз入口адрес也да Зависит отПрервать таблицу поиска векторных чиселуказать。
4. Сервисная программа прерывать происходит случайным образом.,Акцент на прерывать (что означает временное прекращение, отключение, прерывание).,Вернитесь к точке останова, когда закончите. Обычные подпрограммы планируются без точек останова. (очередь и прыжки в очереди) 5. В основной программе,наделятьперед вводом параметровЗащита от нажатия。Та же причина,Это также должно быть в основной программе.,После обработки параметров экспорта,Выйти из стека и восстановить сцену。ипрерывать子программаиз Защитите сценуивосстановить сценуЭто можно сделать только в подпрограмме прерывать.。иПри защите и восстановлении сайтов,Создание прерывателей высокого уровня не допускается.,прерывать необходимо закрыть перед восстановлением сайта,То есть пройти прерывание и пройти один шаг прерывать. 6. При обработке сервисной программы прерывать должно быть разрешено несколько одновременных прерываний, но при вызове подпрограммы такой операции быть не должно. 7. Инструкцией возврата подпрограммы является RET, а командой возврата сервисной программы «Выключить» — IRET/RETI. 8、существовать Обычно,Подпрограммы пишут разработчики приложений.,Сервисную программу «выключить» пишет разработчик системного программного обеспечения.
процедура обслуживания прерыванийпример
Простой эксперимент с подпрограммой «выключить»
один. Экспериментальный контент •Реализовать подпрограммы и процедуры обслуживания Дизайн: прерываний •писать子программанастраиватьнабор40Hпрерыватьдля Настроитьпроцедура обслуживания прерываний •писатьпроцедура обслуживания прерыванийвыполнитьAX=AX+BX •Написать основную программу для вызова подпрограмм и прерывания два. Расширенные требования • Сохраните исходную процедуру. обслуживания прерываний Функция три. Думайте о содержании •Таблица векторов прерыванийструктура •Внедрение цепочки сервисных программ прерывать
Программируемый контроллер прерывания 8259A •Программируемый контроллер прерывания 8259AдаIntelКомпания посвящена80x86 CPUконтрольЧип, спроектированный и разработанный для внешнего прерывания.。 •это Воляпрерывать Арбитраж с приоритетом источника、прерыватьидентификация источникаипрерывать Схема защиты в одном,Внешнее прерывание может управляться без каких-либо дополнительных схем.,Один чип может управлять 8 уровнями внешнего прерывания.,В многочиповом каскадном режиме,Может управлять до 64 уровнями внешнего прерывания.
Внутренняя структура 8259A и сигналы контактов
1. ЦП 8086 имеет адресную линию, которая может напрямую обращаться к пространству памяти емкости. При доступе к порту ввода-вывода он использует адресную линию и может обращаться к портам ввода-вывода, к которым осуществляется доступ. через режим прямой адресации Имеется один порт O. 2. Для определенного микрокомпьютера первый адрес памяти — 1000H, последний адрес — 5FFFH, а объем памяти — КБ. А, 4 Б, 8 В, 16 Д, 20
3. Микропроцессор использует для адресации 13 адресных строк, а его максимальный диапазон адресации составляет КБ. А, 1 Б, 2 В, 4 Д, 8
4. Имеется чип памяти с адресными линиями A0~A12 и линиями данных D0~D7. Емкость чипа равна. A. 4K×8 бит B. 8K×8 бит C. 16K×8 бит D. 32K×4 бита
5. Из каких двух частей состоит процессор 8086? Какие компоненты содержит каждый раздел? Каковы основные функции каждого компонента?
6. Какие регистры процессора 8086 можно использовать как 8-битные или 16-битные регистры? Какими регистрами нельзя манипулировать программистам?
7. Какие регистры процессора 8086 относятся к регистрам общего назначения и регистрам специального назначения? Объясните, пожалуйста, функцию специальных регистров? Какие 4 регистра обычно используются для указания адреса смещения блока памяти при адресации данных и каковы соответствующие адреса сегментов?
8. Каковы физический адрес и логический адрес процессора 8086? Какая связь между ними? Как генерируются действительные адреса?
9. Каковы режимы работы процессора 8086? Какова типичная конфигурация системы минимального режима, состоящей из ЦП 8086?
10. Что такое стек? Какова функция стека? Каковы принципы работы? Какова роль указателя стека SP?
11. Предположим, что начальный адрес двойного слова (DW) 12345678H равен C000H:0002H. Объясните, пожалуйста, как это двойное слово хранится в памяти?
12. Объясните, пожалуйста, разницу между процедурой обслуживания прерываний и обычными подпрограммами?
13. Каковы общие этапы процесса экранирования прерывать и кратко охарактеризовать процесс на каждом этапе?
14. Нарисуйте схему и объясните, что такое тактовые циклы, циклы ЦП (машинные циклы) и командные циклы?
15. Что такое схема полного декодирования? Что такое схема частичного декодирования?
16. Спроектировать память объемом 32 КБ для 8-битной машины (адресная шина 16 бит). Для формирования области EPROM размером 8 КБ необходимо использовать чип 2732 (4 КБ × 8 бит), а адрес начинается с 0000H; для формирования области 24 КБ ОЗУ используется чип 6264 (8 КБ × 8 бит), адрес начинается с 2000H. Сигнал выбора чипа использует метод полного декодирования. Рассчитайте необходимое количество микросхем EPROM и оперативной памяти, нарисуйте таблицу распределения адресов памяти и нарисуйте схему расширения памяти.
17. Что такое интерфейс ввода-вывода? Что такое порт ввода-вывода? Какую роль интерфейсы ввода-вывода играют в системе? Какова связь между портами ввода-вывода и интерфейсами ввода-вывода?
18. Каковы способы обмена данными между процессором и периферийными устройствами? Каковы характеристики каждого?