
- •Теория.
- •Практические задания.
- •Imul reg,src(исходный)
- •Теория.
- •Практические задания.
- •Теория.
- •Практические задания.
- •Теория.
- •Практические задания.
- •Теория.
- •Практические задания.
- •Теория.
- •Практические задания.
- •Теория.
- •Практические задания.
- •Теория.
- •Практические задания.
- •Теория.
- •Практические задания.
Теория.
Механизм прерываний процессора Pentium. Пример обработки прерываний процессора Pentium. Прямой доступ к памяти. (30 баллов)
Практические задания.
Написать программу на ассемблере IA-16, вычисляющую максимальное значение числа N, при котором N! не переполняет двойное слово (4 байта) . (30 баллов)
1)
Примерами процессоров архитектуры IA-32, могут служить процессоры Pentium, в которых используются две линии запроса прерывания, а именно NMI (Non-Maskable Interrupt) — для немаскируемых прерываний и INTR — для маскируемых прерываний, также называемых пользовательскими. Запросы прерываний по линии NMI всегда принимаются процессором. Запросы по линии INTR принимаются только в том случае, если они имеют более высокий уровень приоритета, чем текущая выполняемая программа (об этом речь пойдет чуть позже). Прерывания INTR можно разрешать или запрещать, устанавливая разряд разрешения прерываний в регистре состояния процессора. В дополнение к внешним прерываниям существует множество исключений, связанных с событиями, которые происходят во время выполнения программ. К числу таких событий относятся, в частности, неверные коды операций, ошибки деления, переполнения и многие другие.
Любое из указанных событий заставляет процессор передать управление программе обработки прерывания. При возникновении исключения, а также после получения запроса прерывания процессор выполняет операции, перечисленные ниже.
1. Проталкивает в стек процессора, на который указывает регистр ESP, значение регистра текущего сегмента CS (Code Segment) и указателя команды EIP.
2. Если исключение вызвано нестандартной ситуацией при выполнении программы, помещает в стек код, определяющий причину исключения.
3. Если нужно, очищает флаг разрешения прерывания, чтобы дальнейшие прерывания от того же источника были запрещены.
4. По значению вектора прерывания находит в таблице дескрипторов прерываний начальный адрес программы обработки прерывания и загружает его в EIP, после чего продолжает выполнение команд.
5. Обслужив запрос (например, выполнив пересылку входных или выходных данных), программа обработки прерывания возвращает управление прерванной программе, для чего она выполняет команду возврата из прерывания IRET. Эта команда восстанавливает из стека значения регистров EIP и CS и регистра состояния процессора, восстанавливая тем самым состояние процессора.
Программа обработки прерывания INT21h
… … ;Инициализация, переход на обработку клавиатуры
start: MOV EOL,0
MOV BL,4
OR CONTROL,BL ;Установка разряда KEN для разрешения прерываний
;от клавиатуры
STI ;Установка флага прерываний в регистре процессора
READ: PUSH ЕАХ ;Сохранение регистра ЕАХ в стеке
PUSH ЕВХ ;Сохранение регистра ЕВХ в стеке
MOV EAX,PNTR ;Загрузка адреса буфера
BT STATUS,0 ;Проверка 0-бита STATUS (SIN=1?)
BNC RTRN
MOV BL,DATAIN ;Считывание введенного символа
MOV [EAX],BL ;Сохранение символа
INC DWORD PTR [EAX] ;Увеличение значения указателя
CMP BL,ODH ;Проверка того, введен ли символ возврата каретки
JNE Rtrn
MOV BL,4
XOR CONTROL,BL ;Очистка разряда KEN
MOV EOL,1 ;Установка флага EOL
RTRN POP ЕВХ ;Восстановление регистра ЕВХ
POP EAX ;Восстановление регистра ЕАХ
IRET ;Восстановление процессора
Поэтому для быстрой пересылки больших блоков данных применяется другой подход. Компьютер может содержать специальное управляющее устройство, позволяющее пересылать блоки данных между внешним устройством и основной памятью без постоянного участия процессора. Эта технология называется прямым доступом к памяти (ПДП), по-английски — Direct Memory Access (DMA).
Операции ПДП выполняются управляющей схемой, входящей в состав интерфейса устройства ввода-вывода. Эта схема называется контроллером ПДП.
Задание №9.
Теория.
Система памяти, базовые концепции, иерархия памяти. (30 баллов)
Практические задания.
Написать программу на языке ассемблер IA-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую разность х - у. Параметры передаются через стек процессора . (30 баллов)
Задание №10.
Теория.
КЭШ-память, функции отображения, методы повышения производительности работы с памятью. (30 баллов)
Практические задания.
Написать программу на языке ассемблер IA-16, в которой определены натуральные числа, размерностью двойные слова (4 байта) x и y. Написать подпрограмму, которая находит минимальное из них. Параметры и результат передаются через стек. (30 баллов)
Задание №11.
Теория.
Виртуальная память, преобразование адресов Сегментация памяти и формирование адресов в семействе процессоров IA-32. (30 баллов)
Практические задания.
Написать программу на языке ассемблер IA-16, в которой определено натуральное число N, размерностью слово (2 байта). Написать подпрограмму, которая подсчитывает количество его цифр, если бы оно было представлено в десятичной системе счисления. Параметры и результат передаются через стек. (30 баллов)
Задание №12.