Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ирвин__контр_вопросы_главы_3-4_вар-3.docx
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
220.72 Кб
Скачать

3.3.. Трансляция, компоновка и запуск программ 10

1. Какие типы файлов создаются ассемблером?

2. (Да/Нет). Компоновщик извлекает копии скомпилированных процедур из

библиотеки объектных файлов.

3. (Да/Нет). После внесения изменений в исходный текст программы на ассемблере

ее нужно заново оттранслировать и скомпоновать, чтобы внесенные изменения

возымели действие.

4. Как называется компонент операционной системы, который считывает

исполняемый файл и передает ему управление?

5. Какие типы файлов создаются компоновщиком?

Прежде чем ответить на следующие вопросы, прочтите приложение Г, "Справочник

пo MASM".

6. Какой ключ нужно указать в командной строке при вызове ассемблера, чтобы тот

сгенерировал файл листинга?

7. Какой ключ нужно указать в командной строке при вызове ассемблера, чтобы тот

сгенерировал файл с отладочной информацией?

8. Что означает опция компоновщика /SUBSYSTEM: CONSOLE?

9. Задача повышенной сложности. Назовите как минимум четыре функции из

библиотеки kernel32.lib.

10. Задача повышенной сложности. Какая из опций компоновщика позволяет указать

точку входа в программу?

……………………………………………………………………………………………………………………………………….

3.4.. Определение данных 9

1. Напишите операторы определения для перечисленных ниже переменных:

а) неинициализированной 16-разрядной целой переменной со знаком;

б) неинициализированной 8-разрядной целой переменной без знака;

в) неинициализированной 8-разрядной целой переменной со знаком;

г) неинициализированной 64-разрядной целой переменной;

2. Какой тип данных подходит для хранения 32-разрядной целой переменной со

знаком?

3. Объявите 32-разрядную целую переменную со знаком и присвойте ей

минимальное отрицательное число. (Подсказка. Чтобы узнать о допустимых диапазонах

значений переменных разных типов, обратитесь к главе 1, "Основные понятия".)

4. Объявите 16-разрядную целую переменную без знака с тремя инициализаторами,

которая называется wArray.

5. Объявите строковую переменную, в которой будет храниться название вашего

любимого цвета. Проинициализируйте ее какнуль-завершенную строку.

6. Объявите массив, состоящий из 50 неинициализированных двойных слов без

знака и присвойте ему имя dArray.

7. Объявите строковую переменную, в которой слово "ТЕСТ" повторяется 500 раз.

8. Объявите массив, состоящий из 20 байтов без знака, присвойте ему имя ЬАггау и

присвойте всем его элементам нулевые значения.

9. Опишите порядок расположения в памяти (от младшего к старшему) отдельных

байтов приведенной ниже переменной типа двойного слова:

vail DWORD 87654321b

……………………………………………………………………………………………………………………………………….

3.5.. Символические константы 7

1. Объявите с помощью директивы присваивания (=) символическую константу,

соответствующую ASCII-коду клавиши <Backspace> (08h).

2. Объявите с помощью директивы присваивания (=) символическую константу

SecondslnDay и назначьте ей результат вычисления арифметического

выражения, в котором определяется количество секунд в сутках.

3. Покажите, как можно определить размер приведенного ниже массива в байтах и

присвойте это значение символической константе ArraySize.

myArray WORD 20 DUP(?)

4. Покажите, как можно определить количество элементов в приведенном ниже

массиве, и присвойте это значение символической константе Array-Elements:

myArray DWORD 30 DUP(?)

5. С помощью директивы TEXTEQU переопределите оператор PROC как PROCEDURE.

6. С помощью директивы TEXTEQU определите символ Sample для строковой

константы, а затем воспользуйтесь этим символом при определении строковой

переменной MyString.

7. С помощью директивы TEXTEQU определите символ SetupESl для следующей

строки кода:

mov esi, OFFSET myArray

……………………………………………………………………………………………………………………………………….

……………………………………………………………………………………………………………………………………….