Тест по ассемблеру (углублённый). Часть 1.
Главная–> IT-тесты–> Тесты с ответами по IT дисциплинам–> Тест по ассемблеру (углублённый). Часть 1
Правильные ответы отмечены символом "+"

Тест по ассемблеру (углублённый). Часть 1.

1. Двумерный массив array в программе описан следующим образом array dw 10 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 2х5. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах нулевой элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.1):

Рис. 1.1. Укажите, какие необходимо выполнить команды, чтобы записать в регистр еах нулевой элемент третьей строки матрицы.

А) а);

Б) б);

В) в);

Г) г); +

Д) д);

Е) е);

Ж) ж); +

З) з);

И) и);

2. Двумерный массив array в программе описан следующим образом array dw 15 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 3х5. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах второй элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.2):

Рис. 1.2. Укажите, какие необходимо выполнить команды, чтобы записать в регистр еах второй элемент третьей строки матрицы.

А) а); +

Б) б);

В) в); +

Г) г);

Д) д);

Е) е); +

Ж) ж);

З) з);

3. Двумерный массив array в программе описан следующим образом array dw 20 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 4х5. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах третий элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.3):

Рис. 1.3. Укажите, какие необходимо выполнить команды, чтобы записать в регистр еах третий элемент третьей строки матрицы.

А) а);

Б) б); +

В) в); +

Г) г);

Д) д);

Е) е);

Ж) ж);

З) з); +

4. Двумерный массив array в программе описан следующим образом array dw 16 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 4х4. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах второй элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.4):

Рис. 1.4. Укажите, какие необходимо выполнить команды, чтобы записать в регистр еах второй элемент третьей строки матрицы.

А) а);

Б) б); +

В) в); +

Г) г);

Д) д);

Е) е);

Ж) ж);

З) з); +

5. Двумерный массив array в программе описан следующим образом array dw 6 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 2х3. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах первый элемент второй строки матрицы необходимо выполнить команды (см. рис. 1.5):

Рис. 1.5. Укажите, какие необходимо выполнить команды, чтобы записать в регистр еах первый элемент второй строки матрицы.

А) а);

Б) б);

В) в); +

Г) г);

Д) д);

Е) е);

Ж) ж); +

З) з);

6. Двумерный массив array в программе описан следующим образом array dw 18 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 6х3. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах четвёртый элемент второй строки матрицы необходимо выполнить команды (см. рис. 1.6):

Рис. 1.6. Укажите, какие необходимо выполнить команды, чтобы записать в регистр еах четвёртый элемент второй строки матрицы.

А) а);

Б) б);

В) в);

Г) г); +

Д) д);

Е) е);

Ж) ж); +

З) з);

И) и);

7) TASM поддерживает следующие сложные типы данных:

А) массивы; +

Б) структуры; +

В) объединения; +

Г) записи; +

Д) объекты;

Е) директивы;

8) Если описать одномерный массив следующим образом: mas dd 5 dup (0). Какой объём памяти в данном случае будет выделен под массив?

А) 5 байт;

Б) 4 байта;

В) 10 байт;

Г) 9 байт;

Д) 20 байт; +

Е) 19 байт;

9) Задать двумерный массив в ассемблере можно следующим образом:

А) mas array [0..m,0..n];

Б) mas array [1..m,1..n];

В) mas db [ebx][esi];

Г) mas db 23,4,5,67,5,6,7,99,67,8,9,23,87,9,0,8; +

Д) mas dw 5 dup (?); +

10) Адрес элемента (i,j) в двумерном массиве можно определить следующим образом:

А) (база + количество_элементов_в_строке * размер_элемента * i+j*размер элемента); +

Б) (база+смещение + количество_элементов_в_строке * размер_элемента * i+j**размер элемента);

В) (смещение + количество_элементов_в_строке * размер_элемента * i+j);

Г) (база + количество_элементов_в_строке+смещение * размер_элемента * i+j*размер элемента);

Д) (смещение + количество_элементов_в_строке +база* размер_элемента * i+j);

Е) я не знаю;

11) Для использования структур в программе необходимо обязательно выполнить:

А) задать шаблон структуры; +

Б) определить экземпляр структуры; +

В) организовать обращение к элементам структуры; +

Г) удалить экземпляр структуры после использования его в программе;

Д) удалить шаблон структуры;

12) С помощью оператора type можно:

А) определить объём памяти, выделяемый под один элемент структуры; +

Б) определить объём памяти, выделяемый под массив структур;

В) организовать индексацию в массиве структур; +

Г) обратиться к элементу структуры в виде (адресное_выражение) type (имя_поля_структуры);

13) Для того, чтобы объявить транслятору о том, что в программе имеется процедура, которая используется в другом модуле необходимо использовать директивы:

А) extrn и public; +

Б) enter и leave;

В) far и near;

Г) забыл(а);

14) Если необходимо собрать два модуля, например modul1.asm и modul2.asm в один исполняемый модуль, необходимо:

А) выполнить трансляцию модуля modul1.asm и получить объектный модуль modul1.obj; +

Б) выполнить трансляцию модуля modul2.asm и получить объектный модуль modul2.obj; +

В) cкомпановать программу утилитой TLINK командной строкой вида tlink /v modul1.obj+ modul2.obj; +

Г) cкомпановать программу утилитой TLINK командной строкой вида tlink /С modul1.obj+ modul2.obj;

Д) cкомпановать программу утилитой TLINK командной строкой вида tlink /C modul1.obj and modul2.obj;

15) Пролог в процедуре необходим для:

а) инициализации регистра bp; +

б) инициализации регистра sp;

в) для доступа к переданным в процедуру аргументам через стек; +

г) для того, чтобы правильно записать эпилог в конце процедуры;

16) Если в процедуру типа near были переданы через стек аргументы, то для доступа в процедуре к последнему переданному аргументу необходимо:

А) сместиться от содержимого bp на 4 байта; +

Б) сместиться от содержимого bp на 6 байта;

В) сместиться от содержимого bp на 8 байта;

Г) сместиться от содержимого bp на 2 байта;

17) Команда ret n необходима для:

А) очистки стека от аргументов, которые передавались в процедуру; +

Б) обращения к n-ому аргументу, который передавался через стек;

В) передачи аргументов в процедуру по их адресу;

Г) забыл(а)!

18) Передача параметров по имени в процедуру предполагает:

А) использование механизма макроопределений; +

Б) использование общей области памяти;

В) использование другой специальной функции-заглушки;

Г) работу с прерываниями DOS и BIOS;

19) При передаче аргументов в процедуру через стек «параметры в стеке», «адрес возврата» и «старое значение ВР» вместе называются:

А) прологом;

Б) эпилогом;

В) активационной записью функции; +

Г) макроопределением процедуры;

Д) параметры процедуры;

20) Задать первую локальную переменную p_l внутри процедуры можно следующим образом:

А) p_l equ [bp-2]; +

Б) p_l equ [bp-4];

В) p_l equ [bp-6];

Г) p_l equ [bp+2];

Д) p_l equ [bp+4];

Е) p_l equ [bp+6];

Ж) p_l equ [bp];

21) Если в программе определена структура worker, которая имеет 6 полей и занимает 76 байт, то запись в программе типа sotr worker<> означает, что:

А) все значения полей для структуры sotr заданы по умолчанию; +

Б) все значения полей для структуры sotr равны 0;

В) все значения полей для структуры sotr занимают 1 байт;

Г) в программе определен шаблон для структуры с именем sotr;

22) При работе с цепочечными командами адрес цепочки - источника должен находиться в регистрах:

А) ds:esi/si; +

Б) ds:edi/di;

В) es:edi/di;

Г) es:esi/si;