5. Материалы к промежуточному и итоговому контролю
5.1. Примерный перечень тестовых заданий Выберите неверно составленные инструкции
out dx,ax
mov ebx, [esp+4]
mov ebx, cr0
jz 0008:0000h
Какие утверждения верны для модели памяти compact?
Адресация данных ближняя, адресация кода дальняя
Адресация данных ближняя, адресация кода ближняя
Адресация данных дальняя, адресация кода ближняя
Ничего из приведённого
Что делает следующая инструкция
lea eax, [eax*8][eax]
Умножение eax на 16
Загрузка содержимого памяти по адресу ds:[8*eax] в eax
Умножение eax на 9
В начале процедуры регистры были занесены в стек в таком порядке: eax, ebx, ecx, edx. В каком порядке их нужно восстанавливать в конце процедуры?
edx, ecx, eax, ebx
eax, ebx, ecx, edx
ebx, ecx, edx, eax
eax, ecx, ebx, edx
edx, ecx, ebx, eax
Можно ли работать с 32-х битными регистрами в реальном (16-ти битном) режиме процессора i386
Какой флаг будет проверяться при выполнении инструкции условного перехода je?
Какой модели организации памяти из перечисленных не существует?
Сплошная модель защищённого режима
Сплошная модель памяти реального режима
Сегментированная модель памяти защищённого режима
Сегментированная модель памяти реального режима
Какой флаг устанавливается в 1 если результат арифметической команды требует коррекции?
Что называется физическим адресом?
Адрес памяти хранящийся в сегментном регистре
Адрес памяти используемый
Почему дополнительный код используется для представления целых отрицательных чисел практически во всех микропроцессорах и микроконтроллерах? Укажите все подходящие варианты
Дополнительный код легко читабелен и поэтому удобен для отладки
Используя дополнительный код представления отрицательных чисел операцию вычитания можно заменить на операцию сложения и таким образом реализовать эти две операции на одном сумматоре.
Дополнительный код не является распространённым представлением отрицательных чисел. В большинстве случаев используется обратный код
В чём различия инструкций ret и retf
ret использует дальний адрес (селектор/смещение и смещение) из стека
Эти инструкции идентичны
retf восстанавливает регистр флагов из стека
retf использует дальний адрес (сегмент/селектор и смещение) из стека
В чём заключается разница (если она есть) между двумя следующими инструкциями? Выберите все верные утверждения.
and eax, 0FFh
и
test eax, 0FFh
Разница отсутствует
Первая не изменяет состояния флагов, вторая изменяет
Первая выполняет операцию «побитовое И», вторая «Логическое И».
Первая сохраняет результат операции, вторая нет.
Что произойдёт в результате выполнения команды
Jmp $
Переход в защищённый режим
Данный код вызовёт ошибку трансляции
Перезагрузка компьютера
Зацикливание программы
Одно ли и то же выполняют два следующих куска кода
1)
mov ax, 1020h
mov dx, 0377h
out dx, ax
2)
mov ax, 1020h
mov dx, 0377h
out dx, al
inc dx
out dx, ah
Да
Нет
Зависит от устройства
Возможна ли прямая передача данных между ячейками памяти средствами набора команд 8086?
Какое семейство процессоров первым стало поддерживать полноценный 32-x битный защищенный режим?
80486
Pentium (80586)
80286
80386
8086/8088
Какой способ адресации имеет наиболее компактный код?
Регистровый
Непосредственный
Прямой
регистровый относительный
Регистр ax = 0, какое значение будет содержать ax после выполнения инструкции "dec al"?
0x0
0xf0f0
0xffff
0xff00
Процессор выведет ошибку на экран
0x00ff
0x0f0f
Какой размер адресной шины в 8086?
36 бит
64 бита
16 бит
32 бита
20 бит
Какое значение будет находится в регистре ax после выполнения следующих команд? clc mov ax, ff00h mov cl,4 rcl ax,cl
Выберите правильные утверждения:
ESI - индекс источника, EDI - индекс приемника
ESP, EBP - сегментные адресные регистры
EAX, EBX, ECX, EDX - регистры общего назначения
CS, DS - сегментные адресные регистры
EDI - индекс источника, ESI - индекс приемника
Удастся ли в 32-х битном защищённом режиме получить доступ к памяти выше 4 ГиБ, если создать сегмент с базой большей нуля и пределом в 4 ГиБ?
Да, но только при включенном PAE.
Да, это сработает всегда.
Да, но только при выключенном PAE.
Нет, даже при включенной 36-битной адресации (PAE) все процессы по прежнему смогут адресовать только 4 ГиБ.
5.2. Примерный перечень вопросов для проведения зачёта
Теоретическая часть
Архитектура процессора Intel Pentium.
Сегменты, принцип сегментации памяти.
Использование стека.
Идентификаторы, переменные, метки, имена, ключевые слова.
Типы данных.
Директивы определения данных.
Структура программы на языке ассемблера.
Директива ASSUME и INCLUDE.
Сегментные регистры по умолчанию. Адресация.
Команды для работы со стеком.
Команды арифметического сложения ADD и ADC.
Команды арифметического вычитания SUB и SBB.
Команды умножения MUL и IMUL.
Команды деления DIV и IDIV.
Команды выполняющие логические операции.
Команды выполняющие операции сдвигов.
Команды сравнения и передачи управления.
Команды организации циклов.
Организация подпрограмм.
Практическая часть
Разработать программу преобразования строки в верхний регистр, вывести строку на экран.
Разработать программу преобразования числа в двоичную форму представления, вывести число на экран.
Разработать подпрограмму вычисления факториала числа. Вывести результат на экран.
Разработать программу удаления во введённой строке пробелов, результат вывести на экран.
Разработать программу определения чётности числа, результат вывести на экран.
Разработать программу копирования символьных строк, заканчивающихся нулём.
Разработать программу сцепления символьных строк, заканчивающихся нулём.
Разработать программу объединения целочисленных массивов.
Разработать программу сравнения двух символьных строк, заканчивающихся нулём. Программа должна выдавать один из следующих вариантов: равны, не равны, меньше, больше.
Разработать программу замены во введённой строке первых строчных букв слов на прописные.
Разработать программу которая используя подпрограмму производит реверсирование элементов массива. Адрес массива и количество элементов в нём передаётся в подпрограмму через стек.
Написать программу которая позволяет возводить целое число в целую степень и выводить результат на экран. Операцию возведения числа в степень оформить в виде процедуры.
Разработать программу, которая используя подпрограмму находит количество чётных элементов в массиве чисел (двойных слов). Адрес первого элемента массива и количество элементов в нём передаётся в качестве параметров в подпрограмму через стек.
Разработать программу, которая используя подпрограмму находит наибольший элемент в массиве чисел (двойных слов). Адрес первого элемента массива и количество элементов в нём передаётся в качестве параметров в подпрограмму через стек.
Разработать программу, которая используя подпрограмму находит количество чётных элементов массива чисел (двойных слов). Адрес первого элемента массива и количество элементов в нём передаётся в качестве параметров в подпрограмму через стек.
Разработать программу, которая используя подпрограмму находит количество слов в строке. Адрес первого символа строки передаётся в качестве параметров в подпрограмму через стек. Строка заканчивается нулевым байтом.
Разработать программу, которая заменяет в массиве чисел (двойных слов) числа меньшие 100 на 0.
Разработать программу, которая заменяет в массиве чисел (двойных слов) числа меньшие 100 на 0.
Разработать программу, которая осуществляет реверсирование строки, выводит результат на экран.
Разработать программу, которая осуществляет сложение двух однобайтовых чисел в ASCII представлении.
Разработать программу, которая осуществляет деление двух чисел в ASCII представлении.
Разработать программу, которая осуществляет сравнение массивов, содержащих числа с плавающей точкой.
6. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ Для обеспечения лекционных занятий по данной дисциплине требуется аудитория (желательно компьютерный класс) оборудованный современным мультимедийным оборудованием: видеопроектором (или интерактивной доской) подключенной к персональному компьютеру с установленным программным обеспечением представленным в таблице 1.
Для обеспечения лабораторно-практических занятий по данной дисциплине необходимы компьютерный класс с выходом в Интернет и установленным программным обеспечением представленным в таблице 1.
Таблица 1. Необходимое программное обеспечение
Программное обеспечение
| Описание
| Системное программное обеспечение
| Windows XP Professional либо более поздней версии (32-х битная)
| Операционная система семейства Windows NT корпорации Microsoft
| Лицензионное прикладное программное обеспечение
| Microsoft Office 2003 либо более поздней версии
| Офисный пакет приложений для операционных систем Microsoft Windows. Обязательно наличие в составе пакета Microsoft Word, Microsoft Excel, Microsoft PowerPoint и Microsoft Visio.
| Бесплатное прикладное программное обеспечение
| Macro Assembler (MASM) версии не ниже 8.0 (32-х битный)
| Ассемблер для процессоров семейства x86 для написания программ для Windows (http://www.masm32.com).
| OllyDbg
| Бесплатный проприетарный 32-битный отладчик уровня ассемблера для операционных систем Windows, предназначенный для анализа и модификации откомпилированных исполняемых файлов и библиотек, работающиx в режиме пользователя (http://www.ollydbg.de/).
| RadASM
| Бесплатная среда разработки программного обеспечения для ОС Windows и не только, изначально предназначенная для написания программ на языке ассемблера (http://radasm.cherrytree.at/, http://www.oby.ro/rad_asm/ ).
| 7. СПИСОК ОСНОВНОЙ И ДОПОЛНИТЕЛЬНОЙ ЛИТЕРАТУРЫ, ДРУГИЕ ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ Основная литература
Крупник А. Б. Изучаем Ассемблер. – СПб.: Питер, 2005. – 249 с.
Магда Ю. С. Ассемблер для процессоров Intel Pentium. – СПб.: Питер. 2006. – 410 с.
Финогенов К. Г. Использование языка Ассемблера. Учебное пособие – М.: Горячая Линия – Телеком, 2004. – 440 с.
Юров В. И. Ассемблер: учебник для вузов. 2-е изд. – СПб.: Питер, 2003. – 637 с.
Юров В. И. Ассемблер: практикум – СПб.: Питер, 2004. – 400 с.
Дополнительная литература
Галисеев Г. В. Ассемблер для Win 32. Самоучитель. – М.: Вильямс, 2007. – 368 с.
Иванов В. Б. Программирование микроконтроллеров для начинающих. Визуальное проектирование, язык C, ассемблер. – М: МК-Пресс, 2010. – 176 с.
Марек Р. Ассемблер на примерах – М.: Наука и техника, 2005. – 240 с.
Пильщиков В.Н. Assembler. Программирование на языке ассемблера IBM PC.– М: Диалог-МИФИ, 2005. – 288 с.
Пирогов В. Е. Ассемблер для Windows. – СПб.: БХВ - Петербург., 2007. — 896 с.
Пирогов В. Е. Ассемблер на примерах. – СПб.: БХВ - Петербург., 2005. — 416 с.
Базы данных, интернет-ресурсы, информационно-справочные и поисковые системы
Википедия. Свободная энциклопедия. [Электронный ресурс]: Ассемблер – Режим доступа: http://ru.wikipedia.org/wiki/ Assembler, свободный.
Касперски К. Сравнение ассемблерных трансляторов [Электронный ресурс] – Режим доступа: http://www.insidepro.com/kk/108/108r.shtml, свободный.
Официальный сайт MASM32 [Электронный ресурс] : [офиц. сайт] – Режим доступа: http://www.masm32.com/, свободный.
|