- •4) Пpинципы оpганизации основных аппаpатных сpедств эвм (расслоение памяти, регистр перемещений, прерывания и опрос состояний, буферизация).
- •6) Организация ввода-вывода.
- •7) Методы повышения производительности эвм.
- •9) Микроархитектура современных пэвм. Гиперконвейерная организация процессора.
- •Регистры.
- •Сегментные регистры.
- •17) Основы языка Ассемблер
- •18) Команды логических операций. Сдвиговые команды.
- •19) Цепочечные команды. Префиксы повторения в цепочечных командах.
- •Insb считать из входного порта в приемник по адресу [di]
- •2. Команды умножения (mul, imul)
- •23) Команды условного и безусловного переходов.
- •Формат купу
- •Формат кбпу.
- •Передача параметров в п/п
- •Можно собрать макросы в отдельную библиотеку и писать программы, используя имена макросов в библиотеке.
- •3. Типы класса – имена, фиксированные (code, data, stack).
- •30) Базовая система ввода/вывода bios. Прерывания операционной системы dos. Средства
- •Прерывания ос
Регистры.
EAX – предназначен для выполнения всех арифметических и логических операций. Его специальное назначение – аккумулятор накопления результата и использование в некоторых арифметических командах по умолчанию.
EBX – регистр базы, используется для всех операций, является базовым адресом массива хранения. Для некоторых операций преобразовывает данные XLAT.
ECX – регистр счетчик. Специальное назначение – является счетчиком в командах, которые выполняют циклические действия, или действия над массивами.(LOOP, REP mov SB).
EDX – регистр данных, используется для хранения результатов расширенных данных.
SI, DI – индексные регистры используются для адресации к памяти с модифмкацией этих адресов.
SP – указатель стека, используется для временного хранения памяти.
Стек – часть области памяти, очередь ячеек памяти, которая работает по принципу первый пришел последний обслужился и наоборот. SP указывает на вершину стека, используется в командах работы со стеком.
BP – регистр базового указателя стека.
Сегментные регистры.
CS - регистр сегмента команд
DS - сегмент данных
ES - регистр дополнительных данных
SS - регистр сегмента стека
Память разделена на сегменты. Внутри сегментов адреса ячеек нумеруются от 0. Физический адрес ячейки внутри сегмента вычисляется как сумма от сложения значения сегментного адреса с смещением ячейки в данном сегменте. Адрес в сегментном регистре имеет значение параграфа (число, кратное 16).
IP – регистр указателя команд. Содержит адрес следующей команды.
Регистр флагов. Он предназначен для фиксации результатов выполнения команд и состояние процессора.
С - флаг переносов, содержит перенос из старшего бита в результате арифметических операций и операций сдвига.
Р – флаг паритета, показывает сколько логических единиц получилось в результате выполненной операции. Когда флаг в 0, то нечетное количество единиц получилось в результате каждого действия.
А - арифметический перенос, устанавливает в единицу при наличии переноса из третьего в четвертый разряд.
Z – флаг 0 установится в единицу при получении нулевого результата. Единица, если результат равен 0, иначе Z=0.
S – флаг знака, содержит знак результата (0 – ‘+’, 1 – ‘-’).
Т – пошаговое выполнение действий, используется для отладки программ.
I - флаг прерываний, указывает на возможность внешнего прерывания процесса.
D - флаг направления, обозначает левое или правое направление обработки массивов строковой команды.
О – флаг переполнения, указывает на переполнение старшего бита при выполнении логических операций.
Остальные флаги используются для защитного режима системы.
15) Организация прерываний. Таблица адресов процедур прерывания. Структура программ обработки прерываний.
0 – таймер
1 – клавиатура
2 – канал ввода/вывода
8 – часы реального времени
9 –программа переводится в IRQ2
10-12 – системное использование
13 – математический сопроцессор
14 – контроллер физического диска
15 – резерв
3 – последовательный порт COM2
4 – последовательный порт COM1
5 – LPT2 (параллельный порт)
6 – Floppy-диск
7 – LPT1 (параллельный порт - принтер)
Маскирование 16 прерываний осуществляется с помощью регистра масок, которые находятся в микросхеме управления прерывания
Порт 20 – регистр управления прерываниями
Порт 21 – регистр масок
Чтобы запретить какое-либо прерывание, необходимо в соответствующий разряд регистра масок записать логическую единицу.
В случае если пользователь полностью заменяет стандартный обработчик аппаратных прерываний, то в конце программы обработки прерываний надо выдать в порт 20h байт с кодом 20h. Эти действия необходимы для очистки обслуживания прерываний. Для каждого прерывания у процессора есть своя программа обработки обслуживания прерываний. Адреса этих программ находятся в таблице адресов обработки прерываний.
Каждый элемент таблицы состоит из 4 байт и содержит значения IP и CS,
соответствующие началу программ, обслуживающих конкретные прерывания. Таблица располагается с нулевого адреса.
При получении сигнала прерывания процессор:
- Завершает текущую программу.
- Сохраняет свои IP и CS и регистр флагов в стеке.
- Затем по шине данных получает значение вектора прерываний.
- Загружает в IP, CS данные из таблицы адресов прерываний.
Процессор определяет тип или номер прерывания, считывая с шины данных код, соответствующий этому прерыванию, который формирует устройство, выставившее это прерывание. Вход на микропроцессор 1 (INTR).
При выходе из программы обработки прерываний выполняется команда IRET, которая восстанавливает регистр флагов, IP, CS из стека.
