Главная » Просмотр файлов » Ю.Н. Пронкин - Лекции по ЭВМ (2-3 семестры)

Ю.Н. Пронкин - Лекции по ЭВМ (2-3 семестры) (972268), страница 4

Файл №972268 Ю.Н. Пронкин - Лекции по ЭВМ (2-3 семестры) (Ю.Н. Пронкин - Лекции по ЭВМ (2-3 семестры)) 4 страницаЮ.Н. Пронкин - Лекции по ЭВМ (2-3 семестры) (972268) страница 42019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

5.1BX-(Base - база) – предполагается, что регистр может использоваться для базирования (см. рис.5.2). Но онимеет двоякую роль, так как может хранить как числовые аргументы, так и базы. Его двоякость называетсяасимметрией.Рис. 5.2.Напоминание: mov Dst, SrcDst  Srcmov AX, Src1mov DX, Src2add AX, DXУказатель командIP (Instruction pointer)1) Хранит адрес следующей команды2) Адрес следующей команды заносится в IP сразу после декодирования текущей командыАдресные регистрыРегистры индекса (Рис. 5.3.)SI (Source Index)DI (Destination Index)Регистры управления стекомSP (Stack Pointer)BP (Base Pointer)Команды работы со стекомPush SrcРис. 5.3SP  Sp – z – добавить в стек(SP)  SrcPop DstDst  (SP) – взять из стекаSP  SP+2Pusha – добавить в стек все регистры общего назначенияPopa (читать ПОП А) – Загрузить из стека –«Pushf – добавить в стек содержимое регистров флагов (PSW)Popf – загрузить PSW с вершины стекаРис.5.4Слово состояния программы (Program Status Word)Мы рассматривали ранее только универсальные флажки, приемлимые всем системам.

Каждая системаможет добавлять свои.Рис 5.5CF (Carry flag) – флаг переносаPF (Paring flag) – флаг паритетаZF (Zero flag) – флаг нулевого результатаSF (Sign flag) – флаг отрицательного результатаOF (Overflow flag) – флаг переносаЛекция №625.09.2010AF (Aux Flag) – вспомогательный флаг переноса. Полный аналог флага CF, только относительно четвертогобита результата (если четвертый бит переполнен, то это фиксируется в третьем бите).Двоично-кодированные десятичные числа.0 = 00002:79 = 0111.10019 = 10012Флаги управления1) DF (Direction Flag) – флаг направления (к примеру для цепочечной команды пересылки данныхmovs)рис.6.1Если DF = 0, то цепочечные команды исполняются в направлении возрастания адресов.

Если DF =0, то цепочечные команды выполняются в направлении убывания адресов. Stol – командаустановки DF; clol – команда сброса DF.2) IF (Interrupt Flag) – флаг прерываний.Концепция прерываний. ,Код прерываний – мы останавливаем процессор, выполняем команду сбольшим приоритетом.Рис.6.2 (историческая идеология –режим регулярного кругового опроса).На старых моделях процессор останавливался примерно каждые 5 секунд, чтобы опросить всеустройства о необходимости выполнения каких-либо команд.

Общее: выполняется сканирование иопрос; разница: кто и когда это делает (в первом это зашито в ОП, для второго это часть семантикимашинных команд)1. Реакция на запросы на прерывание встроена в семантику машинных команд.2. Переход по прерыванию выполняется до начала использования текущей задачи.Рис.6.3Если IF = 0, то переходы по прерываниям запрещены.Если IF = 1, то переходы по прерываниям разрешены.Команды управления флагом IF:1. sti – установить флаг2.

cli – сбросить флаг3) TF (Trace Flag) – флаг трассировкиЕсли TF = 1, то прерывание возбуждается после каждой машинной команды (режим трассировки).Режим работы микропроцессора, дающий возможность для работы отладчика. Команд для работы сфлагом TF нет: изменение состояния TF возможно только путем его записи в стек (см.

Pushf и Popf)Регистры управления памятью (сегментные регистры – Segment Registers)CS (Code Segment) – сегмент кодаDS (Data Segment) – сегмент данныхSS (Stack Segment) – сегмент стека (также именуемый SUPER Segment)ES (Extra Segment) – дополнительный сегмент данныхСегмент – некоторая область памяти, в которой расположена целевая информация.

(логическая единица приразрезании памяти)8086Регистры: 16 битЛиния данных: 16 бит(рис.6.4)Линия адреса: 20 битБазы сегментов (разделенные на 16) хранят адреса сегментов различного типа.Модель формирования исполнительного адресаSR – Segment RegisterSR16 << 4 =+ SR’20Offset (рис.6.5)Рис. 6.4.Рис.6.5.Лекция №72.10.2010Теперь будем говорить, что в SP лежит не полный адрес. К нему необходимо добавить базовый адрес SS:SS: SP – адресация стекаCS: IP – адресация командDS и ES управляют операциями пересылки памяти.Одним из главных видов передачи управления (при надежде на возвращение обратно) являются функции(подпрограммы).Виды передачи управленияРабота с подпрограммамиПодпрограмма; Функция; Процедура (хотя слово «процедура» используется обычно только внутрипрограммы, так там нет необходимости конкретизировать этот вопрос).Имя команды не несет никакого значения.Подпрограмма – p(a, b), но нельзя q = p(a, b)Функция – y = Sin(x)Главная программа, на самом деле, тоже кем-то запускается.

Она вызывается ОС.Рекурсивный вызов (рекурсия) – вариант вызова, когда подпрограмма перезапускает сама себя.RET – выполняет возврат в ОС.Основой для создания рекурсивных вызовов является стековая модель памяти. Единственная проблематакой модели – рекурсивный момент должен быть конечен, иначе в некоторый момент времени стек,использующийся для данной процедуры, закончится.Семантика программы CALLВызовы:1) прямой (адрес явно указан в аргументе команды)2) косвенный (в аргументе стоит ссылка на место, откуда можно забрать адрес команды).Например, в языке С: int **p; (указатель)Если А напрямую ссылается на В, то все хорошо.

Но если А ссылается сначала на С, то необходимо сохранитьСегмент 1, перейти в Сегмент 2, а потом вернуться. Короткий переход – внутрисегментный. Длинныйпереход – межсегментный.И прямой, и косвенный вызовы делятся на короткие и длинные переходы.Шаги команды CALL:1. Сохранение адреса возврата в стеке. Значение указателя стека меняется на величину командногослова.SP  SP-2; (SP)  CS; SP  SP-2; SP  IPCS  Segment (адрес перехода)IP  Offset (адрес перехода)RET – автоматически вытекает из CS и IP.2.

Загрузка адреса перехода из аргумента команды.Семантика команды RET1. Восстановление адреса команды из стека.IP  (SP); SP  SP+2; CS  (SP); IP  SP+2;Лекция №806.10.2010В машинном языке нет понятия параметра. Там существует «философия условного места» Перед тем,как вызвать процедуру В, процедура А кладет в некую область параметры, а потом вызывает В. Но этаобласть не контролируется ни А, ни В. То есть, В не знает, что туда необходимо положить, а А не знает, что оттуда будут брать.Как область передачи параметров берется стек.Вызывающая процедура (А)Вызываемая процедура (В)Push pPush q (кладем их в наш стек)proe farpush BPCall BCs и Ip кладутся в стек, как результат Callmov BP, SPmov AX, [BP+8]mov DX, [BP+6]Far – межсегментный вызовadd AX, DXNear – внутрисегментный вызовBP – адрес базыТеперь необходимо начинать подготовку к возвратуpop BPДалее применяем команду RET (описанную в пр.

лекции)RET 4Заканчиваем выполнение процедурыEnd pРеальные Компиляторы настолько суровые, что используют RET вообще без параметра.Прерывание. Программа обработки прерываний.Прерывание дало возможность реагирования на внешние события.При выполнение команды выполняются следующие этапы: 1. Декодирование команды2. Опрос подсистемы прерываний3.

Выполнение командыПрерывания:1) Программные (активируются посредством машинных команд)2) Аппаратные (запрос приходит от аппаратуры)2.1) Внутренние (реагирования на исключительные ситуации внутри процессора,например деление на 0). Отказы на реагирование в этом случае не принимаются.2.2) Внешние. Процессор имеет право не реагировать, если не считает это необходимым.2.2.1) Маскируемые – можно отменить2.2.2) Немаскируемые – отменить нельзяЛекция №99.10.2010Продолжаем разговор о прерыванияхОбщая команда прерыванийint k, где k – номер обработчика прерыванийОднобайтовое прерываниеint ~ int3Прерывания по переполнениюint0 ~ int4, но только если OF=1рис. 9.1Таблица векторов прерыванийРис. 9.2Зарезервированные векторы прерываний(режим реального адреса х86)Вектор 0:ошибка деленияВектор 1:прерывание одношаговой работы(TF=1)Вектор 2:немаскируемое прерываниеВектор 3:команда intВектор 4:команда int0Мы связали некоторые вектора с событиями.

И такимобразом создали маршрутзащиты реакции. Вопрос: зачеммогут понадобится реакции стакими векторами?Подставляем в нашу программу команду с векторами прерываний:Рис. 9.3Рассмотрим MS Dos.Рис . 9.4Наша программа не может работать без ОС – так как она дополняет ее.Семантика прерываний  последовательность прерываний1) Сохранение PSW в стеке2) Сброс IF и TF3) Сохранение CS: IP в стеке4) Загрузка адреса перехода по требованию из вектора с №kСемантика CALL1) Сохранение адреса возврата в стеке (для х86 CS: IP)2) Загрузка адреса перехода из аргумента командыРис . 9.5Если TF не сбросить, то трассировка может распространиться на прерываниеПример с сохранением: нажатие клавиши на клавиатуре  прерывание на короткое время.Лекция №1016.10.2010Напомним: Последовательность прерываний1.2.3.4.Сохранение PSW в стекеСброс флагов TF и IFСохранение в стеке адреса возврата (CS:IP)Загрузка CS:IPиз вектора прерывания.Рис.

10.1 (Модель обработки прерывания)Команда возврата из прерываний iret1. Восстановление адреса возврата из стекаIP  (SP)SP  SP + 2CS  (SP)SP  SP + 22. Загрузка PSW из стекаОбработка внешних аппаратных прерыванийРис. 10.2 (Модели I и II, IIIсвязи ВУ с процессором)I – проблема в синхронизации устройств.II – проблема в обработке прерываний.III – Контроллер прерываний. Эта модель будет основной моделью нашего изучения.Процессор имеет три линии подключений – две входные и одну выходную.INTR – линия запрос на прерыванияINTA – линия подтверждения приема запросаNMI – линия запроса на немаскируемое прерываниеОбслуживание в режиме немаскируемых прерываний1. Схема контроля памяти2. Схема контроля каналов ввода/ вывода3. Сторожевые таймеры (зная приблизительные оценки времени срабатываний, ставим проверку повремени)Каждый контроллер имеет 8 линий подключений.

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

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

Список файлов лекций

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