Тест по основам языка ассемблер. Часть 4.
Главная–> IT-тесты–> Тесты с ответами по IT дисциплинам–> Тест по основам языка ассемблер. Часть 4
Правильные ответы отмечены символом "+"

Тест по основам языка ассемблер. Часть 4.

1. Что будет содержать регистр ebx после выполнения следующего фрагмента кода (см. рис. 4.1):

а) регистр ebx будет содержать данные, помещённые в него на предыдущем шаге, а транслятор выдаст ошибку;

б) регистр ebx будет содержать данные размером в слово, находящиеся по адресу 0000003A;

в) регистр ebx будет содержать значение 0000003А;

г) регистр ebx будет содержать значение 3А000000;

д) регистр ebx будет содержать данные размером в двойное слово, находящиеся по адресу 0000003A; +

2. При выполнении следующего фрагмента кода (см. рис. 4.2):

а) в память, начиная со смещения fld будет записано значение 947503b3;

б) в память, начиная со смещения fld будет записано значение b3037594;

в) в память, начиная со смещения fld будет записано значение b3037594h;

г) в память, начиная со смещения fld будет записано значение 947503b3h;

д) транслятор выдаст ошибку; +

е) линковщик выдаст ошибку;

3. Основное предназначение регистров MMX – это:

А) работа с одной целочисленной переменной, объём которой 8 байт;

Б) работа с несколькими целочисленными переменными одинаковой длины, которые занимают в сумме 8 байт; +

В) работа с несколькими вещественными переменными одинаковой длины, которые занимают в сумме 8 байт;

Г) работа с одной вещественной переменной, объём которой 8 байт;

Д) нет таких регистров в архитектуре процессоров х86;

Е) работа с одной вещественной переменной, объём которой 10 байт;

4. Что будет находится в памяти после объявления следующих переменных (см. рис. 4.3):

А) 41534D4153304D;

Б) 41534D4153004D; +

В) ASMAASS30M;

Г) ASMAS0M;

Д) ASMAS30M;

5. Если в блоке описания данных была объявлена переменная (см. рис. 4.4), то память будет содержать следующие данные:

а) 78563412785634127856341278563412; +

б) 12345678123456781234567812345678;

в) 3132333435363738313233343536373831323334353637383132333435363738;

г) 3837363534333231383736353433323138373635343332313837363534333231;

д) 10012345678;

е) 12345678100;

6. Если в блоке описания данных была объявлена переменная, (см. рис. 4.5), то память будет содержать следующие данные:

а) 7800780078007800; +

б) 78787878;

в) 87878787;

г) 8700870087008700;

д) переменная String объявлена неверно;

е) в память 100 раз будет записано значение 78;

ж) в память 100 раз будет записано значение 87;

7. Косвенный переход на метку в другом сегменте кода:

А) имеет модификатор dword ptr; +

Б) имеет модификатор word ptr;

В) имеет модификатор far ptr;

Г) имеет модификатор near ptr;

Д) изменяет содержимое регистров cs и ip; +

Е) изменяет содержимое только регистра cs;

Ж) изменяет содержимое только регистра ip;

З) предполагает использование адреса перехода, записанного в какой-либо из регистров; +

И) предполагает использование адреса перехода длиной в 4 байта;

К) предполагает использование адреса перехода длиной в 3 байта;

8. Если при написании программы предполагается использование большого объёма данных, но малого объёма кода, то лучше всего использовать модель памяти:

А) Tiny;

Б) Small;

В) Medium;

Г) Compact; +

Д) Large;

9. После выполнения следующего фрагмента кода (см. рис. 4.6):

а) переменная number1 будет равна 104d;

б) переменная number1 будет равна 1101000b;

в) транслятор выдаст ошибку; +

г) регистр ax будет равен 0068;

д) регистр ax будет равен 6800;

е) переменная number2 будет равна 104d;

ж) переменная number2 будет равна 1101000b;

10. После выполнения следующего фрагмента кода (см. рис. 4.7):

а) область памяти, начиная с адреса 401231 будет содержать значение 6800;

б) область памяти, начиная с адреса 401231 будет содержать значение 0068;

б) переменная number1 будет равна 1101000b;

в) транслятор выдаст ошибку; +

г) регистр ax будет равен 0068;

д) регистр ax будет равен 6800;

е) переменная number2 будет равна 104d;

ж) переменная number2 будет равна 1101000b;

11. После выполнения следующего фрагмента кода (см. рис. 4.8):

Рис. 4.8. Какой результат будет после выполнения данного кода.

а) область памяти, начиная с адреса 401231 будет содержать значение 6800;

б) область памяти, начиная с адреса 401231 будет содержать значение 0068;

б) переменная number1 будет равна 1101000b;

в) транслятор выдаст ошибку; +

г) регистр ax будет равен 0068;

д) регистр ax будет равен 6800;

е) переменная number2 будет равна 104d;

ж) переменная number2 будет равна 1101000b;

12. После выполнения следующего фрагмента кода (см. рис. 4.9):

а) область памяти, начиная с адреса 401231 будет содержать значение 68; +

б) переменная number1 будет равна 1111b;

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

г) регистр ax будет равен 0068;

д) регистр ax будет равен 6800;

е) область памяти, начиная с адреса 401231 будет содержать значение 0F;

ж) область памяти, начиная с адреса 401231 будет содержать значение F0;

з) регистр ax будет равен 000F; +

и) регистр ax будет равен 00FF;

13. После выполнения следующего фрагмента кода (см. рис. 4.10):

а) в регистре Al будет целая часть от деления, в регистре Ah – остаток;

б) в регистре Al будет записано значение 0101h, в регистре Ah – 1h;

в) в регистре AX будет записано значение 00000101h, в регистре DX – 0001h;

г) в регистре EAX будет записано значение 0000000000000101h, в регистре EDX – 0000000000000001h;

д) транслятор выдаст ошибку; +

е) линковщик выдаст ошибку;

14. После выполнения следующего фрагмента кода (см. рис. 4.11):

а) в регистре AX будет целая часть от деления, в регистре DX – остаток;

б) в регистре AX будет записано значение 047B C111h, в регистре DX – 12h;

в) в регистре EAX будет записано значение 0000 0000 047B C111h, в регистре EDX – 0000000000000012h;

д) транслятор выдаст ошибку; +

е) линковщик выдаст ошибку;

15. После выполнения следующего фрагмента кода (см. рис. 4.12):

а) в регистре AX будет целая часть от деления, в регистре DX – остаток;

б) в регистре AX будет записано значение 047B C111h, в регистре DX – 12h;

в) в регистре EAX будет записано значение 0000 0000 047B C111h, в регистре EDX – 0000000000000012h;

д) транслятор выдаст ошибку; +

е) линковщик выдаст ошибку;

16. После выполнения следующего фрагмента кода (см. рис. 4.13):

а) в регистре AX будет записано значение FE9Ah, в регистре DX – 30h; +

б) в регистре EAX будет записано значение 0000 0000 0000 FE9Ah, в регистре EDX – 0000000000000030h;

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

г) линковщик выдаст ошибку;

д) в верхней части регистра ЕAX будет записано значение 0037h; +

е) в нижней части регистра ЕAX будет записано значение B1E0h;

ж) в верхней части регистра ЕAX будет записано значение 3700h;

з) в нижней части регистра ЕAX будет записано значение E0B1h;

17. После выполнения следующего фрагмента кода (см. рис. 4.14):

а) в регистре AX будет записано значение EF17h, в регистре DX – 000Ah; +

б) в регистре EAX будет записано значение 0000 EF17h, в регистре EDX – 0000000Ah;

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

г) линковщик выдаст ошибку;

д) в верхней части регистра ЕAX будет записано значение 0036h; +

е) в нижней части регистра ЕAX будет записано значение 2B40h;

ж) в верхней части регистра ЕAX будет записано значение 3600h;

з) в нижней части регистра ЕAX будет записано значение 402Bh;

18. После выполнения следующего фрагмента кода (см. рис. 4.15):

а) записывает значение 65535 в переменную Msg1; +

б) переводит значение FFFFh в десятичную систему счисления; +

в) переводит значение, записанное в регистр ах в десятичную систему счисления; +

г) зациклиться: выход по команде jne невозможен;

д) производит деление значений 65535/5;

е) производит деление значений 65535/10;

ж) производит перевод в цикле значения 65535d в шестнадцатиричную систему счисления;