Принципы микрокомпьютера и технология интерфейса. Ключевые подробные пояснения и краткое содержание глав — Структура микропроцессорной системы 8086
Принципы микрокомпьютера и технология интерфейса. Ключевые подробные пояснения и краткое содержание глав — Структура микропроцессорной системы 8086

Глава 3. Структура микропроцессорной системы 8086.

Структура процессора 8086

ЦП 8086 — это 16-битный микропроцессор серии Intel, имеющий 40 контактов. Его внешняя шина данных имеет разрядность 16 бит, а адресные линии — 20. Поскольку доступны 20-битные адреса, адресное пространство составляет до 1 МБ. (Отображает возможности адресации периферийной памяти)

ЦП 8086 имеет внутреннюю структуру параллельного конвейера, которая может улучшить загрузку ЦП и скорость обработки. ЦП 8086 был разработан для поддержки многопроцессорных систем (CISC).

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

Блок-схема внутренней структуры Intel 8086: обязательный экзамен

В1: Что самое знаковое в каждой части? например: в 8086 нет FPU, только ALU, только идея кэша, но нет реального кэша.

Структура и функции ЕС и BIU

Блок интерфейса шины BIU

BIU — это интерфейс между ЦП и внешней памятью, а также вводом и выводом, который отвечает за обмен данными. БИУ состоит из следующих частей:

  • Четыре 16-битных адресных регистра сегмента, а именно регистр сегмента кода CS, регистр сегмента данных DS, регистр дополнительного сегмента ES и регистр сегмента стека SS, которые используются для хранения базовых адресов текущего сегмента кода, сегмента данных, дополнительного сегмента и сегмент стека соответственно. Базовый адрес сегмента представляет собой старшие 16 бит 20-битного начального адреса сегмента, а младшие 4 бита начального адреса сегмента имеют фиксированное значение 0.
  • 16-битный указатель инструкции IP: IP используется для хранения эффективного адреса EA (т. е. адреса смещения) следующей выполняемой инструкции. Содержимое IP автоматически изменяется BIU, обычно путем добавления 1. При выполнении инструкций по передаче или инструкций по вызову BIU загружает адрес назначения передачи в IP. адрес перемещение представляет собой расстояние от начального адреса сегмента,выражается в байтах。нравитьсяАдрес смещения = 0064H,указывает местоАдрес находится на расстоянии 100 байт от начального адреса сегмента.,Адрес смещения, равный 0, означает, что адрес является начальным адресом сегмента.。 Зависит отбазовый адрес сегмента (содержимое реестра сегментов) и адрес смещения две части составляют память логической адреса, такие как CS:IP=3000:2000H, CS:IP=0200:1020H и т. д., являются логическими. адрес。
  • сумматор адресов:Сумматор используется для добавлениялогический адрес конвертируется в память для чтения/записи требуется 20Кусочекфизический адрес, то есть операция добавления адреса завершена. Метод заключается в изменении содержимого определенного регистра (представляющего базовый адрес сегмента) осталось на 4Кусочек (что эквивалентно умножению на 16) плюс 16Кусочекадрес смещенияформировать20Кусочекфизический адрес。
  • 6-байтовая очередь инструкций: когда исполнительный блок EU выполняет инструкции и ему не требуется занимать шину, BIU автоматически предварительно выбирает одну или несколько инструкций и сохраняет их в очереди инструкций в порядке их выполнения.
  • Логика управления шиной: логика управления шиной используется для генерации и отправки сигналов управления шиной для обеспечения управления чтением/записью памяти, а также портов ввода и вывода.

Исполнение часть ЕС:Ответственный за инструкцииосуществлять

  • Арифметико-логическое устройство ALU: ALU выполняет арифметико-логические операции с 16-битными или 8-битными двоичными числами. Выполнение большинства инструкций завершается ALU. Во время работы данные сначала передаются во временный 16-битный регистр. После обработки АЛУ результат операции может быть отправлен в общий регистр по внутренней шине или сохранен в памяти БИУ.
  • Регистр флагов FR: используется для отражения характеристик состояния последнего результата операции ЦП или сохранения флагов управления. FR — 16 бит, 7 бит из которых не используются.
  • Набор регистров общего назначение: состоит из 4 регистров данныхAX、BX、CX、DX,AX еще называют аккумулятором.,4 специальных регистра,То есть индикатор базового адреса БП, указатель стека SP、Индексный регистр источника SI и индексный регистр назначения DI.
  • Контроллер ЕС: он получает инструкции из очереди инструкций в BIU, декодирует инструкции для формирования различных сигналов управления синхронизацией и отправляет соответствующие команды управления функциональным компонентам в ЕС для выполнения операций, указанных каждой инструкцией.

Управление действиями для BIU и ЕС

  • получить инструкции BIUот Памятьполучить инструкции и отправляется в очередь команд. получить Адрес при выполнении инструкции определяется по 16Кусочекбазовый в регистре сегмента кода CS. адрес За самым низким Кусочек сегмента следуют 4 0, а затем он сопоставляется с 16 Кусочекадрес в указателе инструкции IP. смещениясуществоватьсумматор Сложив по адресам получим 20Кусочекфизический. адрес。Затем выдайте команду чтения памяти через логику управления шиной.,таким образом запуская память,отпамятьсередина Выбиратьвнеинструкцияи отправитьинструкцияочередь заEUосуществлять。
  • Получить операнд или сохранить результат Tweet требуется во время выполнения директивы ЕС. операнд или сохранить При получении результата сначала отправьте запрос в BIU и укажите эффективный адрес операнда. BIU сформирует физический размер 20Кусочек на основе запроса ЕС и предоставленного эффективного адреса. адрес и выполнить цикл шины для доступа к памяти или порту ввода-вывода, взять операнд из указанного блока хранения или порта ввода-вывода и отправить его в EU для использования или сохранить результат в указанном блоке хранения или порте ввода-вывода. Если БИУ готово получить Инструкция получила заявку из ЕС одновременно, BIU завершил получение первым операцию, а затем прочитать и записать операнды. Когда EU выполняет инструкции по передаче, вызову и возврату, BIU сначала автоматически очищает очередь инструкций, а затем нажимает новый адрес для получения, предоставленный EU. инструкция. Первая инструкция, полученная BIU, будет отправлена ​​непосредственно в ЕС. Затем,BIU повторно заполняет полученные впоследствии инструкции в очередь инструкций.

8086 структура регистра

Набор регистров общего назначения

регистр данных регистр данныхвключатьAX、BX、CX、DXждать4индивидуальный16-битный регистр,В основном используется для хранения операндов, промежуточных результатов и адресов арифметических и логических операций. Они доступны как в 16-битном регистре.,Вы также можете разделить старший и младший байт каждого регистра и использовать их как два независимых регистра 8Кусочек. 8Кусочек регистров (AL, BL, CL, DL, AH, BH, CH, DH) можно использовать только для хранения данных.

Указатель адреса и индексный регистр

  • Указатель адреса и индексный Группа регистров включает указатель стека. SP, базовый регистр стека Указатель БП и индексный регистр Указатели SI и DI и другие 4 16-битные регистр. Они в основном используются для хранения или указания операндов. смещения。
  • указатель стекаSPВ нем хранится текущий сегмент стека.вершина стекаизадрес смещения. Инструкции операций стека PUSH и POP используются для получения операндов из SP. смещенияиз。
  • BP — регистр базового адреса при доступе к стеку. BP хранит адрес смещения определенной единицы хранения в стеке, и BP обычно используется совместно с SS.
  • SI и DI называются индексными регистрами.。Обычно они связаны сDSкомбинированное использование,для доступа к программекогда Бывший сегмент данных предоставляетсядействоватьчислоизДанайадрес смещения。SIиDIудалятькакв целомизвнешний индексный регистр,существоватьВ инструкции операции со строкой SI указывает адрес смещения, используемый для хранения исходного операнда (т. е. исходной строки), который называется регистром индекса источника; DI указывает адрес смещения, используемый для хранения операнда-адресата (строки назначения), поэтому это так: называется индексным регистром назначения, их нельзя смешивать。Зависит от Ю Чуандействоватьинструкция Указывает, что исходная строка должна Кусочекв текущем сегменте данныхDSсередина,Строка назначения должна находиться в дополнительном разделе ES.,такSIиDIсерединаизконтент соответственнодакогдавпередчисло据частьикогдапрефикссерединаединица храненияизадрес смещения。 Когда SI, DI и BP не используются в качестве индикаторов и индексных регистров, их также можно использовать в качестве общего регистра. данные используются для хранения операндов или результатов операций.

неявная адресация

  • Восемь 16-битных регистров общего назначения в целом являются универсальными. но,Чтобы сократить длину кода инструкции,некоторые проходятиспользовать В реестре указаны специализированныеизиспользоватьспособ。неявная адресация означает, что некоторые регистры общего назначения неявно используются в инструкции, но эти регистры общего назначения не выражены в инструкции напрямую. 。
  • Например,существовать Обработка строкинструкциясередина Соглашение должноиспользоватьCXкакприлавоксохранить строкуиздлина。такинструкциясередина就Нет必给внеCXЗарегистрировать имя,Сокращенная длина команды,Упрощенная форма написания команды,Такое использование называется «неявная адресация».

Специальные назначения и неявные свойства регистров общего назначения в ЦП 8086.

Формирование физического адреса 8086

  • 8086 ЦП может напрямую обращаться к пространству Память размером 1 МБ. Для прямой адресации требуется 20Кусочек адресных кодов, а все внутренние регистры, включая сегментные, имеют размер 16Кусочек. Их использование в качестве адресных регистров позволяет напрямую обращаться только к устройствам размером 64 КБ. Следовательно, в 8086 г. CPUсерединаиспользовать Для решения этого противоречия используется технология сегментации пространства хранения.。Воля1MBиз Помещение для хранения разделено нанравиться Сухойиндивидуальныйлогический сегмент,Максимальная длина каждого сегмента составляет 64 КБ. Эти логические сегменты могут плавать в пределах всего пространства хранения LMB.,ноНачальный адрес сегмента должен делиться на 16.。Это для20Кусочекиз Начальный адрес сегмента,Его низкий 4Кусочек равен 0,Можно пока игнорировать,И только старший 16Кусочек является допустимой цифрой,Можно хранить в16Кусочекиззарегистрироватьсясередина。существоватьформа20Кусочекфизический адрес, номер 16Кусочек в регистре сегментов автоматически сдвигается влево на 4Кусочек, а затем добавляется к смещению 16Кусочек. 。(Видимо, Данай до 64К)

Фотография выше должна быть сделана

  • дляОперация выборки,да ВолякогдавпередCSсерединаизсодержание Сдвиг влево4Кусочек(Довольно умножение16)ПлюсIPизсодержание,форма20Кусочек Адрес инструкции;Доступ к даннымдействовать,да Волякогдавпередчисло据частьзарегистрироватьсяDSсерединаизбазовый адрес сегмента Сдвиг влево4Кусочек,Затем добавьте его в 16Кусочекадрес смещенияEA.,форма20Кусочекизфизический адрес;дляОперации push и pop,да Волякогдавперед堆栈частьзарегистрироватьсяSSсерединаизбазовый адрес сегмента смещается влево на 4Кусочек и добавляется к SP, образуя физический из 20Кусочек. адрес;существоватьверноОперация с целевой строкойчас,текущий дополнительный регистр сегментаESсерединаизбазовый адрес сегмента сдвигается влево на 4Кусочек и добавляется к DI, образуя физический из 20Кусочек. адрес。
  • 8086 также допускает частичные изменения в базовом соглашении о сегментах.,нравитьсяДоступ к даннымиз基本частьдлячисло据часть,Но его можно временно изменить на сегмент кода, дополнительный сегмент или сегмент стека.,Прямо сейчасДанные могут находиться не только в сегменте данных, но и в сегменте кода, дополнительном сегменте и сегменте стека.。Эта ситуация называетсяДуань Чаоюэ

набор сегментных регистров

регистр управления

контрольный флаг Флаги управления — это флаги, используемые для управления рабочим режимом или рабочим состоянием ЦП. Пользователи могут использовать команды для установки или очистки.

  1. IF(Interrupt Flag) - Прервать знак «Разрешено». Это флаг, управляющий экранируемым прерыванием, например IF=1. , разрешите процессору Ответ можно заблокировать, если IF=0; Когда, даже если периферийное устройство отключило приложение, ЦП И не реагирует, т.е. прерывать запрещено.
  2. DF (Флаг направления) — Флаг направления. Этот флаг используется для управления изменением направления указателя адреса в инструкциях строковых операций. В инструкциях по строковым операциям,нравитьсяDF=0, указатель адреса автоматически увеличивается,То есть выполнять строковые операции от младшего адреса к старшему, если DF=1;,Указатель адреса автоматически уменьшается,То есть строковые операции выполняются от старших адресов к младшим адресам.
  3. TF(Trap Флаг) — одношаговый флаг. ТФ=1 Когда, процессор Это одношаговый метод, то есть внутренняя программа автоматически генерируется каждый раз при выполнении инструкции, что позволяет пользователю отслеживать программу одну за другой для отладки. Если ТФ=0 Когда, процессор Запустите программу в обычном режиме.

8086 системные часы и цикл команд

каждыйинструкцияизобъяснятьосуществлятьпроцессвключатьполучить инструкциииосуществлятьинструкциядваиндивидуальныйшаг,ЦП получает команду и выполняет ее.,Необходимо выполнить ряд операций,эта сериядействоватьнеобходимыйизчаспространство обычно называютиндивидуальныйцикл инструкций。Зависит отв каждомдобрыйинструкцияиздействовать Функциядругой,Поэтому каждыйдобрыйинструкцияизцикл инструкцийда Не то же самоеиз。Соответствующие инструкцииосуществлятьизтрииндивидуальныйэтап,цикл инструкции обычно делятся на: цикл выборки, цикл выборки операндов и цикл выполнения. (1) Цикл выборки Цикл выборки — это время, необходимое для получения инструкции. В цикле выборки команд ЦП в основном выполняет две операции: 1) выборку инструкций по содержимому счетчика программ ПК; 2) формирование адреса последующих инструкций. цикл выборки = (Длина инструкции / Длина слова хранения) × Цикл чтения/записи основной памяти

(2) Получить цикл операнда Цикл выборки операнда — это время, необходимое для выборки операнда для выполнения инструкции. Длина цикла выборки операндов зависит от количества операндов, физического расположения операндов и режима адресации операндов. (3) Цикл выполнения Цикл выполнения — это время, необходимое для завершения операций, указанных инструкцией, и отправки результатов. Это связано со сложной программой работы, указанной в инструкции, а также с физическим расположением и режимом адресации операнда-адресата. Код состояния в информации о состоянии сохраняется в слове состояния программы PSW во время цикла выполнения. Если инструкция является командой передачи, адрес передачи также будет сгенерирован в этом цикле.

Несколько концепций цикла

цикловые инструкции часто занимают несколько циклов процессора (читайте、переводить、осуществлять、напишите ответ), чтобы выразить,CPUцикл, также известный какмашинный цикл。Зависит от ВCPUвнутреннийиздействовать Быстрее,Процессору требуется много времени, чтобы получить доступ к Память один раз.,Так обычноОпределите цикл ЦП как минимальное время, необходимое для чтения командного слова из памяти.。То есть,один кусочекинструкцияиз Выбиратьвнеэтап(принести)нужен одининдивидуальныйCPUциклчасмежду。иодининдивидуальныйCPUциклчасмежду又包含有нравиться Сухойиндивидуальныйтактовый цикл(Часто называют ударным пульсом илиTцикл,этодаиметь дело сдействоватьизсамая базовая единица(Минимальный заказ Кусочек))。тактовый Цикл — это базовое время ЦП, которое определяется основным тактовым импульсом компьютера. Ряд операций, которые выполняют каждую инструкцию и каждый цикл шины, выполняются синхронно с тактовым импульсом. Эти тактовые Сумма циклов определяет продолжительность цикла ЦП. Во время выполнения инструкций ЦП должен занять системную шину для доступа к Память или внешним устройствам, чтобы прочитать получение из Память или периферийного интерфейса. инструкцииилиинструкциянеобходимыйиздействоватьчисло。ЦП занимает системную шину один раз, а время, необходимое для ввода и вывода информации, называется циклом шины.

Часы и тактовые генераторы

• Системный тактовый сигнал (основная частота), необходимый для 8086.,Можно использовать кристалл кварца или кристалл TTL. По разным источникам колебаний,8284A有двадобрыйдругойизсоединятьметод:Один из них — использоватьГенератор импульсов как источник колебаний,Другой способ — использоватьКварцевый генератор как источник колебаний

8086 Режим работы процессора

  • минимальный рабочий режимДля автономных систем,Все сигналы управления шиной в системе подаются напрямую от 8086.,Поэтому схема управления шиной в системе может быть сведена к минимуму; для многопроцессорных систем используется максимальный режим работы.,ЦП 8086 в качестве основного процессора,Другие процессоры являются сопроцессорами.,Помощь основному процессору в его работе。В максимальном рабочем режиме сигналы управления, необходимые системе, предоставляются контроллером шины 8288. Сигнал управления шиной в минимальном режиме 8086 генерируется непосредственно ЦП. Для управления шиной используются сигналы HOLD (сигнал запроса шины, вход) и HLDA (сигнал ответа шины, выход).
  • Работает ли 8086 в максимальном или минимальном режиме, полностью определяется аппаратным подключением. Когда вывод ЦП № 33 MN/ подключен к +5 В, 8086 работает в минимальном режиме. Когда MN/ подключен к земле, 8086 работает в максимальном режиме.

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 переходит на низкий уровень. ЦП возобновляет работу. управление автобусом.

Организация памяти 8086:

Память:

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

1、внутренняя память Используется для хранения информации, которой в настоящее время часто обменивается процессор. Работает быстро, но имеет небольшую емкость.

2、внешняя память Она используется для хранения информации, не обрабатываемой процессором. Она имеет большую емкость, поэтому ее называют массовой памятью. Для доступа к внешней памяти требуются специальные интерфейсы и приводные устройства, а скорость доступа намного медленнее, чем у памяти. Когда информацию необходимо обработать, ее сначала необходимо перенести в память, а затем обработать ЦП.

В основном представляем внутреннюю Память:

внутренняя память,также известный какПамять,это основная память,Кусочек внутри хоста компьютера,используется дляХраните системное программное обеспечение, а также используемые в настоящее время или часто используемые программы и данные.,Памятьиз Вместимость зависит отприезжатьбиты адресной шиныизпредел,Например8086 ЦП имеет 20 адресных шин, а адресное пространство составляет 1 МБ.

Сегментация адресов памяти:

Фактический адрес любой единицы хранения состоит из двух частей: адреса сегмента и адреса смещения внутри сегмента. Единица хранения может быть определена в одном сегменте или в логическом сегменте из двух сегментов. Главное — увидеть, как указывается первый адрес сегмента. ИБМ PCмашинаверночастьиз首адрес有предел,Оговорено, что он должен начинаться с первого адреса каждого абзаца (параграфа), а каждые 16 байт — это небольшой абзац.,такНачальный адрес сегмента должен делиться на 16.

Формирование физического адреса и логического адреса
  • Система 8086 помещает адрес сегмента в регистр сегмента, называемый «базовый». адрес сегмента”。Имеется 4 сегментных регистра, а именно регистр сегмента кода CS, регистр сегмента данных DS, дополнительный регистр сегмента ES и регистр сегмента стека SS.
  • Данай“адрес смещения» указывает относительное смещение Кусочка от адреса сегмента. Его можно поместить в регистр указателя команды. IP в или внесите в общий реестр 16Кусочек, как добраться из адреса сегмента 16Кусочек и адреса 16Кусочек смещения получил адрес 20Кусочек, нужно сначала логически объяснить адресифизический адрес два понятия.
    • логический адрес**: любая логическая память адресда Зависит отбазовый адрес сегментаиадрес смещениякомпозицияиз**,все беззнаковые 16Кусочек двоичных чисел,Программированиечасиспользоватьлогический адрес
    • физический адрес: Абсолютный адрес памяти от 00000 до FFFFFH — это фактический адрес процессора, обращающегося к памяти, который определяется логическим путем. Преобразовано из адреса. Физический адрес = базовый адрес сегмента 16 + адрес смещения.
Разделенная структура памяти (структура четности)

В системе 8086 ЦП имеет 16 линий данных, а базовая единица (байт) памяти имеет 8 линий данных. Поэтому система хранения обычно делится на память с четным телом и память с нечетным телом для подключения к 8086.

  • Четное тело Память: Банк памяти содержит ячейки со всеми четными адресами.,Odd body Память: Банк памяти содержит ячейки со всеми нечетными адресами. По регламенту 8086,Данные блока четного адреса передаются в младших 8 битах линии данных, а данные блока нечетного адреса передаются в старших 8 битах линии данных.
  • 偶体памятьиз8 линий данныхсоединятьприезжатьчисло据总线изМладшие 8 битначальство,Самая нижняя адресная строка Кусочек A0 Используется в качестве сигнала выбора четной памяти тела, 8 нечетной памяти тела. линий данныхсоединятьприезжатьчисло据总线изСтаршие 8 битначальство,Вывод 8086 использует (инверсный BHE) низкий уровень в качестве сигнала выбора памяти нечетного тела.
  • В системе 8086,1MBиз Помещение для хранения разделено надваиндивидуальный Память:даже адресная памятьипамять с нечетным адресом,512 КБ соответственно.

Информация, хранящаяся в памяти, называется содержимым единицы хранения. Например, содержимое единицы хранения 00100H равно 34H, что выражается как (00100H) =. 34H。одининдивидуальный Характерсуществоватьпамятьсередина按相邻дваиндивидуальный Характер节магазин,и ДепозитчасСохраняйте в том порядке, в котором младший байт находится по младшему адресу, а старший байт — по старшему адресу.(формула),Адрес словной единицы представлен младшим адресом Кусочка. Слово можно хранить, начиная с четного адреса.,Вы также можете начать хранение с нечетного адреса.,Однако когда ЦП 8086 обращается к памяти, это осуществляется в словах и начинается с четного адреса. Когда ЦП читает/записывает слово, если адрес единицы слова начинается с четного адреса, то доступ к памяти требуется только один раз, с младшим байтом в четном адресном блоке и старшим байтом в нечетном. адресный блок. Если адрес словной единицы начинается с нечетного адреса, то ЦП необходимо дважды обратиться к памяти.,Получить данные по нечетному адресу в первый раз (игнорируя данные 8Кусочек по четному адресу),Получить данные по четному адресу в первый раз (игнорируя данные 8Кусочек по нечетному адресу),Поэтому, чтобы ускорить работу программы,При программировании обратите внимание на сохранение словных данных, начиная с четного адреса памяти.,Этот тип хранилища также называется «выровненным хранилищем».

Концепция стека

Концепция стека
  • Стек в основном используется дляВременно сохранять данные и вызовы процедур или временную информацию о точках останова при обработке прерывать。базовый адрес сегмент задается SS (начальный адрес), а указатель стека задается SP, указывая на вершину стека. стека。 (1)Концепция стека
  • Стек – это область хранения данных, открытая в памяти.,Используется для хранения данных, которые необходимо временно сохранить. Один конец этой зоны хранения фиксирован.,Активность на другой стороне,и只позволятьчисло据от活动端进вне。использовать“Первым пришел, последним вышел”изправило。Сегмент стека — это сегмент, определяемый сегментом. Он может произвольно плавать в пространстве памяти размером 1 МБ, но его емкость меньше или равна 64 КБ.(16Кусочек)

стековая организация

Адрес запоминающего устройства в сегменте стека определяется регистрами 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. Подключение адресных линий чипа

  • Адресные линии микросхемы памяти обычно подключаются к младшей адресной шине системы. При обращении,Декодирование этой части адреса завершается внутри микросхемы памяти.,называетсяВстроенное декодирование
  • Например: предположим, что память имеет N адресных строк и выбран чип. Его адресная линия получает N-битный адресный сигнал, и чип внутренне выполняет N→
2^N

Декодирование, диапазон декодируемых адресов: от 000…000 (все N бит равны 0) до 111…111 (все N бит равны 1).

2. Обработка выбора чипа

  • Память состоит из микросхемы памяти или набора микросхем.,Его возможности ограничены,При использовании он может не соответствовать требованиям. поэтому,Часто возникает необходимость расширения в адресном направлении.,удовлетворитьАдресация нескольких микросхем памяти или наборов микросхем。这один寻址процесссередина,Главным образом через Волясистемавысокий Кусочекадрес线经внешнийадрес译码器产生из输вне Сигнал与памятьизэтап выбора чипасоединятьизметод Приходитьвыполнить。проходитьадрес译码выполнить Выбор фильмаизметод有3добрый:Метод линейного выбора, метод выбора полного декодирования и метод частичного декодирования.
  • метод линейного отбора Метод линейного выбора подразумевает использование определенного бита в старшей адресной строке адресной шины, который непосредственно служит сигналом выбора чипа (CSnon) микросхемы памяти, и использование младших битов адресной строки для реализовать внутрикристальную адресацию. Преимущество метода выбора строки состоит в простоте структуры, но недостаток в том, что адресное пространство тратится впустую. Поскольку некоторые адресные строки не участвуют в декодировании, неизбежно произойдет перекрытие адресов. Кроме того, когда посредством выбора строки выбирается больше чипов, доступное адресное пространство может стать прерывистым.
  • Метод выбора полного декодирования и метод частичного декодирования 2) Метод выбора полного декодирования Метод выбора полного декодированиядаобратитесь к Воляадрес总线серединаВсе адреса старшего порядка, за исключением адреса на кристалле, подключены к входу декодера для участия в декодировании.(вся компанияначальство Понятно)。использовать Полный метод При декодировании адрес каждой единицы памяти уникален, перекрытия адресов нет, но схема декодирования более сложная и связей больше. 3) Метод частичного декодирования Метод частичного декодирования заключается в декодировании определенных битов (а не всех старших битов) адресов в **старшей адресной строке через декодер и использовании их в качестве сигнала выбора микросхемы памяти. **Для выбранного чипа старшая адресная строка, не участвующая в декодировании, может быть равна 0 или 1, то есть каждому блоку памяти будет соответствовать несколько адресов. При использовании неиспользуемые адреса обычно устанавливаются в 0. Использование метода частичного декодирования может упростить схему декодирования, но из-за перекрытия адресов это приведет к некоторой трате ресурсов системного адресного пространства.
  • На что обратить внимание при подключении 1. Нагрузочная способность шины ЦП В небольших системах ЦП может быть напрямую подключен к микросхеме памяти, но при подключении к памяти большой емкости следует учитывать проблемы с управлением шиной. 2. Проблема координации таймингов процессора и скорости доступа к микросхемам памяти. Во время рабочего процесса микрокомпьютера операции чтения/записи памяти процессора являются наиболее частыми операциями. Поэтому при рассмотрении связи между памятью и ЦП необходимо учитывать, может ли рабочая скорость чипа памяти соответствовать времени чтения/записи ЦП. Это следует учитывать с двух аспектов: время работы чипа памяти и время работы. Тайминги процессора. 3. Проблемы с распределением адреса памяти и выбором чипа. Сначала определите емкость памяти всей машины, затем определите тип и количество используемых микросхем памяти, затем разделите области ОЗУ и ПЗУ и нарисуйте карту распределения адресов. 4. Подключение сигналов управления
расширение бита

расширение бита означает увеличение длины слова хранения. расширение бита Может принести пользуиспользоватьчипадрес并联из Способвыполнить,Прямо сейчас ВоляЛинии данных каждого чипа подключены к каждому биту шины данных.,Адресные линии, линии сигналов чтения/записи и линии сигналов выбора чипа каждого чипа соответствуют заземлить вместе. Например: две микросхемы 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начинать。Выбор фильма СигналиспользоватьПолный метод декодирования

  • 2732 предусмотрено за штуку 212×8Кусочек(4K×8bit)емкость хранения
  • 6264 предусмотрено за штуку 213×8Кусочек(8K×8bit)емкость хранения

• Первым шагом является определение количества микросхем ОЗУ, необходимых для создания банка ОЗУ объемом 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 может иметь доступ к регистрам ввода-вывода размером 64 КБ или 32 КБ слов (два байта). Ограничение возможностей адресации устройств ввода-вывода связано с тем, что ширина адреса адресации ввода-вывода составляет 16 бит, что означает, что максимальная емкость устройства ввода-вывода составляет 64 КБ.。I/OадрессуществоватьT1состояниечасвне现существоватьадрес总线изA0приезжатьA15начальство,Затем он фиксируется сигналом ALE. Во время операций ввода-вывода,Верхний конец адресной шины (A16~A19) всегда имеет логический 0.
  • Используйте DX при передаче данных наружу)16-битный регистрDX используется как 16Кусочек Указатель адреса ввода-вывода, максимальная возможность адресации составляет всего 64 КБ. Интерфейс ввода-вывода с отображением хранилища рассматривается как блок хранения, и к нему обращается микропроцессор. Байты данных четного адреса передаются по D7~D0, а байты нечетного адреса передаются по D15~D8. При проектировании 8-битной подсистемы ввода-вывода системы 8086 следует учитывать, что адреса всех байтовых регистров в системе должны быть четными числами. Стек составляет 64 КБ.

8086 внешнее прерывание

8086 Система прерываний ЦП

(Для внешних интерфейсов это внешнее прерывание, для внутренних интерфейсов это внутреннее прерывание)

•ЦП 8086 имеет простую и гибкую систему прерывания.,Принять векторный тип прерывать структуру,Может обрабатывать до 256 запросов на прерывание разных типов. Существует два типа источников прерывания ЦП.,внутреннийпрерыватьивнешнийпрерывать,внешнийпрерывать Также делятся на неэкранированныепрерыватьNMIи ЭкранируемыйпрерыватьINTR。НеэкранированныйNMIпрерывать(не может быть заблокирован,обеспечивать соблюдение,Сигнал запроса самого высокого уровня срабатывает по нарастающему фронту,Как только сигнал действителен,прерывать сразу после исполнения текущего ордера,Выполнить соответствующий обработчик прерывания,Незачемпрерыватьответцикл。иЭкранируемое прерывание отправляет сигнал запроса на прерывание в ЦП через INTR.,Если ЦП открыт, остановить,После выполнения текущей команды он входит в цикл ответа «Прервать».,прерыватьответциклзаниматьиспользоватьдва автобусных цикла

**Внутреннее прерывание (программное прерывание)** Требуемый тест

  • переполнениепрерывать (Номер вектора4извнутреннийпрерывать)
  • Ошибка деленияпрерывать(Номер вектора0извнутреннийпрерывать)
  • один шагпрерывать (Номер вектора1извнутреннийпрерывать) В 8086 нет прямой команды для установки TF в 1 или сброса 0. Вы можете изменить содержимое флага, хранящееся в стеке, а затем изменить значение TF с помощью инструкции POPF.
  • точка остановапрерывать (Номер вектора3извнутреннийпрерывать)
  • инструкцияпрерывать(Номер вектораnизвнутреннийпрерывать)Настроить Инструкция прерывать — выполнить INT При n генерируется внутреннее прерывание с номером вектора n, которое представляет собой двухбайтовую инструкцию INT. Кроме 3. ИНТ. nВ основном используется для определения системы илиПользовательское программное обеспечение прерывает,нравитьсяBIOSвызов функциииDOSвызов функции。 Внутренний номер вектора прерыванияудалятьинструкцияпрерыватьЗависит отинструкцияобратитесь к定外,Остальное все по расписанию,Поэтому нет необходимости передавать номер вектора прерывать.,Также нет необходимости прерывать циклы ответа.

Внешнее прерывание (аппаратное прерывание)

Вызывается подачей действительного сигнала запроса на прерывание на внешний сигнальный вывод запроса на прерывание ЦП.,разделен наНеэкранированныйпрерыватьNMIиЭкранируемыйпрерыватьINTR 1)НеэкранированныйпрерыватьNMI

  • НеэкранированныйпрерыватьNMIда Зависит отДействительный сигнал запроса на прерывание подается на вывод NMI.причинаизодининдивидуальныйпрерывать вектором номер 2。NMIиспользуется дляуведомитьCPUслучилосьфатальное событие,нравитьсяСбой питания, ошибки чтения и записи памяти, ошибки битов четности шины.ждать。NMIдаНедоступно для программной блокировкииз,И это вызвано нарастающим фронтом,модели типа прерывать планируется 2,Цикл ответа прерывать не требуется. В серии IBM PC,NMI используется для обработки ошибок четности памяти, ошибок четности канала ввода-вывода, исключений сопроцессора 8087 и т. д.

2) Маскируемое прерывание INTR

  • CPUизINTRконтакты нормально Зависит от8259A PICизINT выходдрайвер сигнала,8259A, в свою очередь, подключается к периферийному устройству, которому необходимо запросить прерывание. Когда периферийное устройство отправляет сигнал запроса на прерывание, 8259A отвечает в соответствии со статусом приоритета и экранирования.,РешатьданетпроблемаINTСигнал。периферийные устройстваизпрерыватьпросить Сигналдолженсуществоватьпрерыватьпросить Сигнал被接受вперед保持有效。иCPUверноINTRСигналдасуществоватькаждыйинструкцияиз最后одининдивидуальныйтактовый цикл выбран. •После получения действительного сигнала INTR, ответит ли ЦП на запрос прерывать, зависит от состояния флага разрешения прерывания КусочекIF. Если IF=1, ЦП открыт и отвечает, в противном случае он не отвечает. Следовательно, чтобы ответить на запрос прерывания INTR, ЦП должен открыть прерывание. •8086Оснащенвернопрерыватьлоготип КусочекIFнабор1или очистить0изинструкция,Инструкция STI устанавливает IF в 1.,ЦП включается, команда CLI сбрасывает IF в 0;,CPUзакрыватьпрерывать 。

Разница между аппаратными прерываниями и программными прерываниями

  • Если разделить по прерывать источник,则системасерединаизпрерыватьтакже можно разделить на:аппаратное обеспечениепрерыватьипрограммное обеспечениепрерывать。идляаппаратное обеспечениепрерывать,Программист не имеет над этим контроля.,Они в основном генерируются случайным образом,А для ПО прерывать,Программисты могут намеренно организовывать свои
  • Разница между двумяЕсть следующие моменты: 1. Время, когда происходит мягкое прерывание, контролируется программой, а время, когда происходит жесткое прерывание, является случайным; 2. Мягкое прерывание вызвано вызовами программ, а жесткое — периферийными устройствами; 3、аппаратное обеспечениепрерыватьиметь дело спрограмма要确保это能快速地完成этоиз Задача,Эта процедураосуществлятьчас Ни за чтождатьобращаться较长часмежду。

Маскируемый процесс обработки прерываний

•Экранируемыйпрерыватьиметь дело сизпроцессв целомразделен на几步:прерыватьпросить;прерыватьответ;Защитите сцену;перевод восуществлятьпроцедура обслуживания прерываний;восстановить сценуипрерыватьвозвращаться。 Существует несколько условий, при которых ЦП должен отреагировать на прерывание.: 1) Периферийное устройство подает заявку на прерывание; 2) Этот бит прерывания не маскируется; 3) Это прерывание имеет наивысший приоритет. 4) ЦП разрешает прерывания;

8086 Система прерываний ЦП

8086 Реакция ЦП на прерывание процесса

когдапрерыватьсхема интерфейсасерединаизпрерывать Блокировать триггер не заблокированчас,Периферийные устройства могут выдавать запросы прерывания через интерфейс прерывания. Время, когда периферийное устройство выдает запрос на прерывание, является случайным.,ЦП производит выборку входной строки запроса прерывания INTR в последнем состоянии T последнего машинного цикла каждой инструкции.,когдаCPUсуществоватьНа вывод INTR был получен действительный сигнал запроса на прерывание.Внутреннее прерывание ЦП позволяет открывать триггеры,Затем ЦП отвечает прерыванием после завершения текущей инструкции. После ответа ЦП остановить,вернопрерывать Схема интерфейса отправляетДва сигнала ответа «прервать» ИНТАНет ,когдапрерыватьсхема интерфейса收приезжатьвторой ИНТАНет После этого номер типа прерывания отправляется в ЦП по линии данных.

Четыре этапа реагирования на прерывания

1. Стадия запроса и ответа на прерывание

  • CPUсуществоватькаждыйинструкцияосуществлятьиз最后одининдивидуальныймашинный циклвыборкапрерыватьпросить Сигнал,После выполнения текущей команды,Вступите в процесс принятия решения о том, следует ли реагировать на прерывание.,В случае внутреннего прерывания или неэкранированного прерывания NMI.,CPU автоматически формирует модель типа прерывать,Если это INTR, вы можете заблокировать прерывание.,Введите цикл ответа «прервать»,Получить номер типа прерывания из шины данных

2. Прерывание этапа автоматической обработки.

  • Поместите регистр флагов FR в стек, установите TEMP=TF и временно сохраните состояние TF. IF и TF сбрасываются в 0, CS и IP помещаются в стек, а Таблица проверяется по номеру типа прерывания. векторов прерываний, все выполняется автоматически аппаратно.

3. Этап обслуживания прерываний

  • основнойдаосуществлятьсоответствующийизпрерыватьсервисная программа,Выполняемая обработка зависит от приложения.,Например, сервисная программа прерывания периферийных устройств.,В основном для передачи информации,Сервисная программа «Включить», запускаемая программным обеспечением, в основном обслуживает другие программы в системе.

4. Возврат по прерыванию

  • когдаосуществлятьприезжатьIRETинструкциячас,Автоматически выскакивает IP и CS и регистр флага FR,Возврат к предыдущей настройке программы Кусочек,осуществлять下один кусочекинструкция。

Таблица векторов прерываний

•В системе 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).,нравитьсяВызов системной функции DOSINT 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 адрес смещения

Язык кода:javascript
копировать
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 для установки и получения векторов прерываний.

Язык кода:javascript
копировать
;Сначала удалите ранее сохраненные
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 и сигналы контактов

Глава 3. Мысли и упражнения

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. Каковы способы обмена данными между процессором и периферийными устройствами? Каковы характеристики каждого?

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose