Назад
Посмотреть правильные ответы
Тест на тему: Тест по ассемблеру (углублённый). Часть 1
В тесте 22 вопроса.
1). (из 22): Двумерный массив array в программе описан следующим образом array dw 10 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 2х5. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах нулевой элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.1):
Выберите несколько правильных ответов
а) А);
б) Б);
в) В);
г) Г);
д) Д);
е) Е);
ж) Ж);
з) З);
и) И);
2). (из 22): Двумерный массив array в программе описан следующим образом array dw 15 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 3х5. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах второй элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.2):
Выберите несколько правильных ответов
а) А);
б) Б);
в) В);
г) Г);
д) Д);
е) Е);
ж) Ж);
з) З);
3). (из 22): Двумерный массив array в программе описан следующим образом array dw 20 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 4х5. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах третий элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.3):
Выберите несколько правильных ответов
а) А);
б) Б);
в) В);
г) Г);
д) Д);
е) Е);
ж) Ж);
з) З);
4). (из 22): Двумерный массив array в программе описан следующим образом array dw 16 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 4х4. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах второй элемент третьей строки матрицы необходимо выполнить команды (см. рис. 1.4):
Выберите несколько правильных ответов
а) А);
б) Б);
в) В);
г) Г);
д) Д);
е) Е);
ж) Ж);
з) З);
5). (из 22): Двумерный массив array в программе описан следующим образом array dw 6 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 2х3. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах первый элемент второй строки матрицы необходимо выполнить команды (см. рис. 1.5):
Выберите несколько правильных ответов
а) А);
б) Б);
в) В);
г) Г);
д) Д);
е) Е);
ж) Ж);
з) З);
6). (из 22): Двумерный массив array в программе описан следующим образом array dw 18 dup (?), где элементы массива имеют размерность в 2 байта. Двумерный массив имеет размерность 6х3. При этом при обращении к элементу массива используются регистры esi – столбцы в матрице и ebx –строки в матрице. Чтобы записать в регистр еах четвёртый элемент второй строки матрицы необходимо выполнить команды (см. рис. 1.6):
Выберите несколько правильных ответов
а) А);
б) Б);
в) В);
г) Г);
д) Д);
е) Е);
ж) Ж);
з) З);
и) И);
7). (из 22): TASM поддерживает следующие сложные типы данных:
Выберите несколько правильных ответов
а) массивы;
б) структуры;
в) объединения;
г) записи;
д) объекты;
е) директивы;
8). (из 22): Если описать одномерный массив следующим образом: mas dd 5 dup (0). Какой объём памяти в данном случае будет выделен под массив?
Выберите единственный правильный ответ
а) 5 байт;
б) 4 байта;
в) 10 байт;
г) 9 байт;
д) 20 байт;
е) 19 байт;
9). (из 22): Задать двумерный массив в ассемблере можно следующим образом:
Выберите несколько правильных ответов
а) 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). (из 22): Адрес элемента (i,j) в двумерном массиве можно определить следующим образом:
Выберите единственный правильный ответ
а) (база+смещение + количество_элементов_в_строке * размер_элемента * i+j**размер элемента);
б) (смещение + количество_элементов_в_строке * размер_элемента * i+j);
в) (база + количество_элементов_в_строке+смещение * размер_элемента * i+j*размер элемента);
г) (смещение + количество_элементов_в_строке +база* размер_элемента * i+j);
д) (база + количество_элементов_в_строке * размер_элемента * i+j*размер элемента);
е) я не знаю;
11). (из 22): Для использования структур в программе необходимо обязательно выполнить:
Выберите несколько правильных ответов
а) задать шаблон структуры;
б) определить экземпляр структуры;
в) организовать обращение к элементам структуры;
г) удалить экземпляр структуры после использования его в программе;
д) удалить шаблон структуры;
12). (из 22): С помощью оператора type можно:
Выберите несколько правильных ответов
а) определить объём памяти, выделяемый под один элемент структуры;
б) определить объём памяти, выделяемый под массив структур;
в) организовать индексацию в массиве структур;
г) обратиться к элементу структуры в виде (адресное_выражение) type (имя_поля_структуры);
13). (из 22): Для того, чтобы объявить транслятору о том, что в программе имеется процедура, которая используется в другом модуле необходимо использовать директивы:
Выберите единственный правильный ответ
а) enter и leave;
б) extrn и public;
в) far и near;
г) забыл(а);
14). (из 22): Если необходимо собрать два модуля, например modul1.asm и modul2.asm в один исполняемый модуль, необходимо:
Выберите несколько правильных ответов
а) cкомпановать программу утилитой TLINK командной строкой вида tlink /v modul1.obj+ modul2.obj;
б) cкомпановать программу утилитой TLINK командной строкой вида tlink /С modul1.obj+ modul2.obj;
в) выполнить трансляцию модуля modul1.asm и получить объектный модуль modul1.obj;
г) выполнить трансляцию модуля modul2.asm и получить объектный модуль modul2.obj;
д) cкомпановать программу утилитой TLINK командной строкой вида tlink /C modul1.obj and modul2.obj;
15). (из 22): Пролог в процедуре необходим для:
Выберите несколько правильных ответов
а) инициализации регистра bp;
б) инициализации регистра sp;
в) для доступа к переданным в процедуру аргументам через стек;
г) для того, чтобы правильно записать эпилог в конце процедуры;
16). (из 22): Если в процедуру типа near были переданы через стек аргументы, то для доступа в процедуре к последнему переданному аргументу необходимо:
Выберите единственный правильный ответ
а) сместиться от содержимого bp на 6 байта;
б) сместиться от содержимого bp на 4 байта;
в) сместиться от содержимого bp на 8 байта;
г) сместиться от содержимого bp на 2 байта;
17). (из 22): Команда ret n необходима для:
Выберите единственный правильный ответ
а) обращения к n-ому аргументу, который передавался через стек;
б) передачи аргументов в процедуру по их адресу;
в) очистки стека от аргументов, которые передавались в процедуру;
г) забыл(а)!
18). (из 22): Передача параметров по имени в процедуру предполагает:
Выберите единственный правильный ответ
а) использование механизма макроопределений;
б) использование общей области памяти;
в) использование другой специальной функции-заглушки;
г) работу с прерываниями DOS и BIOS;
19). (из 22): При передаче аргументов в процедуру через стек «параметры в стеке», «адрес возврата» и «старое значение ВР» вместе называются:
Выберите единственный правильный ответ
а) прологом;
б) эпилогом;
в) активационной записью функции;
г) макроопределением процедуры;
д) параметрами процедуры;
20). (из 22): Задать первую локальную переменную p_l внутри процедуры можно следующим образом:
Выберите единственный правильный ответ
а) p_l equ [bp-4];
б) p_l equ [bp-6];
в) p_l equ [bp-2];
г) p_l equ [bp+2];
д) p_l equ [bp+4];
е) p_l equ [bp+6];
ж) p_l equ [bp];
21). (из 22): Если в программе определена структура worker, которая имеет 6 полей и занимает 76 байт, то запись в программе типа sotr worker<> означает, что:
Выберите единственный правильный ответ
а) все значения полей для структуры sotr равны 0;
б) все значения полей для структуры sotr занимают 1 байт;
в) в программе определен шаблон для структуры с именем sotr;
г) все значения полей для структуры sotr заданы по умолчанию;
22). (из 22): При работе с цепочечными командами адрес цепочки - источника должен находиться в регистрах:
Выберите единственный правильный ответ
а) ds:edi/di;
б) es:edi/di;
в) es:esi/si;
г) ds:esi/si;