Задание №1.
-
Теория.
-
Язык ассемблера процессора Intel IA-32. Директивы ассемблера. Директивы описания данных. Структура программы на языке ассемблера. Команды управления потоком выполнения команд. Дать примеры программного кода на ассемблере. (30 баллов)
-
Практические задания.
-
Написать программу на ассемблере IA-16, вычисляющую максимальное значение числа N, при котором N! не переполняет одно слово (2 байта). (30 баллов)
Задание №2.
-
Теория.
-
Арифметические команды. Сложение, умножение, деление, вычитание. Дать примеры программных кодов на ассемблере. (30 баллов)
-
-
Практические задания.
-
Написать программу на языке ассемблер IA-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую сумму х + у. Параметры передаются через стек процессора.(30 баллов)
-
Задание №3.
-
Теория.
-
Операции ввода-вывода. Ввод-вывод с отображением в память. Изолированный ввод-вывод. Блочная пересылка данных. (30 баллов)
-
-
Практические задания.
-
Написать программу на языке ассемблер IA-16, в которой определены натуральные числа A1,…An. Написать подпрограмму, вычисляющей среднее арифметическое этих чисел и формирующей массив d1, … dn, отклонений этих чисел от среднего значения. Адреса начала массивов An, dn передаются подпрограмме через регистры ax и bx, а число элементов n передается через регистр cx. (30 баллов)
-
Задание №4.
-
Теория.
-
Подпрограммы. Вызов подпрограмм, передача параметров, вложенные подпрограммы. (30 баллов).
-
-
Практические задания.
-
Написать программу на ассемблере IA-16, вычисляющую максимальное значение числа N, при котором N! не переполняет один 4 байта. (30 баллов)
-
Задание №5.
-
Теория.
-
Организация и работа со стеком процессора, стековый фрейм. (30 баллов)
-
-
Практические задания.
-
Написать программу на языке ассемблер, которая осуществляет ввод с клавиатуры в память компьютера посимвольно строку символов длины L, упорядочивает введенные символы по порядку возрастания ASCII кодов. (30 баллов)
-
Задание №6.
-
Теория.
-
Доступ к устройствам ввода-вывода. Виды прерываний, управление прерываниями. (30 баллов)
-
-
Практические задания.
-
Написать программу, организующую пользовательский стек, занимающий фиксированную область размером k байт. Каждая ячейка стека занимает 1 байт. Написать подпрограмму, реализующую занесение элемента в пользовательский стек. Указатель, отслеживающий вершину стека, а также адрес начала, длина стека k и код ошибки при переполнении стека , передаются через стек процессора. (30 баллов)
-
Задание №7.
-
Теория.
-
Прерывания, исключения в операционных системах. (30 баллов)
-
-
Практические задания.
-
Напишите последовательность команд, корректно работающую со стеком без использования команд pop и push с применением базой индексной адресации и выполняющую перечисленные ниже задачи:
-
-
Вытолкнуть первые два элемента из стека, сложить их и поместить результат в стек.
-
Скопировать пятый элемент от вершины стека в регистр dx.
-
Удалить из стека 10 элементов. (30 баллов)
Задание №8.
-
Теория.
-
Механизм прерываний процессора Pentium. Пример обработки прерываний процессора Pentium. Прямой доступ к памяти. (30 баллов)
-
-
Практические задания.
-
Написать программу на ассемблере IA-16, вычисляющую максимальное значение числа N, при котором N! не переполняет двойное слово (4 байта) . (30 баллов)
-
Задание №9.
-
Теория.
-
Система памяти, базовые концепции, иерархия памяти. (30 баллов)
-
-
Практические задания.
-
Написать программу на языке ассемблер IA-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую разность х - у. Параметры передаются через стек процессора . (30 баллов)
-
Задание №10.
-
Теория.
-
КЭШ-память, функции отображения, методы повышения производительности работы с памятью. (30 баллов)
-
-
Практические задания.
-
Написать программу, организующую пользовательский стек, занимающий фиксированную область размером k байт. Каждая ячейка стека занимает 1 байт. Написать подпрограмму, реализующую считывание элемента из пользовательского стека. Указатель, отслеживающий вершину стека, а также адрес начала, длина стека k и код ошибки при чтении из пустого стека, передаются через стек процессора. (30 баллов)
-
Задание №11.
-
Теория.
-
Виртуальная память, преобразование адресов Сегментация памяти и формирование адресов в семействе процессоров IA-32. (30 баллов)
-
-
Практические задания.
-
Написать программу, организующую пользовательский стек, занимающий фиксированную область размером k байт. Каждая ячейка стека занимает 1 байт. Написать подпрограмму, реализующую занесение элемента в пользовательский стек. Указатель, отслеживающий вершину стека, адрес начала, длина стека k и код ошибки при переполнении стека, передаются соответственно через регистры di, bx, cx и dx. (30 баллов)
-
Задание №12.