Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
готовые (нету 52 ,54,28,27,25,24,23,32.).doc
Скачиваний:
7
Добавлен:
20.04.2019
Размер:
199.68 Кб
Скачать
  1. Опишите способы использования языка Ассемблер в языках высокого уровня.

Передача параметров

Язык высокого уровня – передают параметры вызываемое процедуры в стеке и ожидают возврощение параметров в регистре АХ, ЕАХ, если результат не уменшается в ЕАХ то используется пара ДХ : АА . Ассемблер на языках высокого уровня используются для организации прерываний, приоброзований сложных бытовых структур.

  1. Приведите отличия Pascal-концепции и с-концепции при взаимодействии Ассемблера с языками высокого уровня.

Канцепция паскаль это способ размещать пораметры в стеке в естественном порядке.

Same_proc(a,b,c,d); ЯВУ

Push a Push b push c, push d

Call same_proc

Это значит процедура Same_proc во первых должна очистить ТЭК по окончанию работы и во вторых параметры переданные ей в стеке находятся в обратном порядке. Главным недостатком этого подхода заключается создание фун. Со изменяемым числом пораметров. Чтоб определить число параметров переданных функции, процедуры должна прочитать сначала первый параметр, размещение в стеке которого она не знает.

Концептия С

Параметры передаются в обратном порядке

Same_proc(a,b,c,d); ЯВУ

Push d Push c push b, push a

Call same_proc

Регистр ВР в С концепции служат для хранения числа пораметров и его же в коем случае не льзя изменять , преимуществом перед паскаль канцепции является то что асвабождение стека возлогается на вызывающую процедуру. Так же существует смещенная концепция котороя использует для передачи параметров РОН и СТЭК.

38. Дайте определение понятию «прерывание». Приведите классификацию прерываний для IBMPC.

Прерывание означает временное прекращение основного процесса вычислений для выполнения некоторых запланированных или незапланированных действий, вызываемых работой аппаратуры или программы.Нажимая клавишу на клавиатуре, мы инициируем немедленный вызов программы, которая распознает клавишу, заносит ее код в буфер клавиатуры, из которого он считывается другой программой. Т.е. на некоторое время микропроцессор прерывает выполнение текущей программы и переключается на программу обработки прерывания, так наз. обработчик прерывания. После того, как обработчик прерывания завершит свою работу, прерванная программа продолжит выполнение с точки, где было приостановлено ее выполнение.Адрес программы-обработчика прерывания вычисляется по таблице векторов прерываний.Механизм прерываний поддерживается на аппаратном уровне.

Классификация прерываний

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

·      внешние - вызываются внешними по отношению к микропроцессору событиями (по существу - это группа аппаратных прерываний) Вложенных прерываний нет!

·      внутренние - возникают внутри микропроцессора во время вычислительного процесса (по существу - это исключительные ситуации и программные прерывания).  

! В реальном и защищенном режиме работы микропроцессора обработка прерываний осуществляется принципиально разными методами.

. 39.Опишите организацию аппаратных прерываний

К аппаратным средствам системы прерываний относятся:

·     выводы микропроцессора - на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI)

·     INTR - вывод для входного сигнала запроса на прерывание,

·     NMI - вывод для входного сигнала немаскируемого прерывания

·     INTA - вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором (этот сигнал поступает на одноименный вход микросхемы конроллера 8259А;

·      программируемый контроллер прерываний 8259А ·      внешние устройства (таймер, клавиатура, магнитные диски и т.п.)Процессор получив сигнал по линии INT на выполнение прерывания сохраняет в стеке выполняемой программы содержимое регистров FLAGS, CS:IP .Загружает CS и IP из соответствующего вектора прерываний, и тем самым на обработчик прерываний, связанный с этим вектором и передает ей управление. Обработчик прерываний всегда завершается командой iret (interruptreturn, возврат из прерывания) , которая возвращает старые значения CS , IP и регистра флагов , тем самым приводя к возврату в точку программы, где она была прервана.

40.Опишите структуру контроллера прерываний, назначение его основных узлов.

Для того, чтобы написать программу обработки прерываний от какого-либо устройства . необходимо быть знакомым с особенностями функционирования и программирования контроллера. Логически в контроллере можно выделить 4 основных узла :

  • Регистр входных запросов

  • Регистр маски

  • Схема приоритетов

  • Регистр обслуживаемых запросов

Последовательность обработки внешнего аппаратного прерывания имеет следующий вид:

  1. Сигнал запроса прерывания поступает на вход регистра запросов и устанавливает в 1 соответствующий бит. значение регистра маски ( программируемый через порт 21h) равное 0 разрешает прохождение сигнала на схему анализатора приоритетов. , значение равное 1 запрещает .

  2. Сигнал запроса прерывания поступает на вход регистра обслуживаемых запросов и дает разрешение на установку в 1 его бита

  3. Микропроцессор , получив сигнал INT формирует выходной сигнал INTA, который устанавливает бит регистра обслуживаемых запросов, разрешенный сигналом запроса прерывания и сбрасывает аналогичный бит регистра запросов.