Задание №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.
Теория.
Процессор, базовые концепции. Механизм пересылки данных между регистрами. (30 баллов)
Практические задания.
Написать программу, организующую пользовательский стек, занимающий фиксированную область размером k байт. Каждая ячейка стека занимает 1 байт. Написать подпрограмму, реализующую чтение элемента из пользовательского стека. Указатель, отслеживающий вершину стека, адрес начала и длина стека k и код ошибки при чтении из пустого стека, передаются соответственно через регистры di, bx, cx и dx. (30 баллов)
Задание №13.
Теория.
Процессор, механизм выборки слова из памяти, сохранения слова в памяти. Последовательность действий при выполнении арифметической или логической операции. (30 баллов)
Практические задания.
Написать программу для ввода с клавиатуры натурального числа порядка n с последующим его преобразованием в машинное представление. (30 баллов)
Задание №14.
Теория.
Конвейерная обработка команд. Производительность конвейерной обработки, конфликты. (30 баллов)
Практические задания.
Написать программу на языке ассемблер IA-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую разность х - у. Параметры передаются через регистры процессора. (30 баллов)
Задание №15.
Теория.
Суперскалярная обработка команд, методы повышения эффективности. (30 баллов)
Практические задания.
Написать программу на ассемблере, осуществляющую при произвольных нажатиях на клавиши клавиатуры ввод в память компьютера букв только латинского алфавита. ASCII коды букв возьмите у преподавателя. (30 баллов)
Задание №16.
Теория.
Виды параллельной обработки и классификация систем параллельной обработки. Матричная обработка в компьютерных системах параллельной обработки. (30 баллов)
Практические задания.
Написать программу на языке ассемблер ШФ-16, преобразующую строку байтов длинной n, являющихся ASCII-кодами десятичных цифр, в машинное представление. (30 баллов)
Задание №17.
Теория.
Архитектура мультипроцессорных систем общего назначения. (30 баллов)
Практические задания.
Написать подпрограмму на языке ассемблер, вычисляющий бесконечную сумму
с заданной точностью
(0<<
).
Параметр
передается через регистр dx,
вычисленный результат через регистр
dx
(30 баллов)
Задание №18.
Теория.
Коммуникационные сети в компьютерных системах параллельной обработки. (30 баллов)
Практические задания.
Написать подпрограмму на языке ассемблер, вычисляющий бесконечную сумму
с заданной точностью
(0<<
).
Параметр
и вычисленный
результат передаются через стек. (30
баллов).
Задание №19.
Теория.
Программный параллелизм и общие переменные, алгоритм доступа к общим переменным в системах параллельной обработки, согласованность кэша. (30 баллов)
Практические задания.
Написать программу на языке ассемблер IA-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую сумму х + у. Параметры передаются через регистры процессора.. (30 баллов)
Задание №20.
Теория.
Особенности программирования систем параллельной обработки с общей памятью и систем с передачей сообщений. Производительность мультипроцессорных систем. Закон Амдала. (30 баллов)
Практические задания.
Написать программу на языке ассемблер IA-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую сумму х + у. Параметры передаются через стек процессора.. (30 баллов)
