игра брюс 2048
Главная / Программирование / Common Intermediate Language и системное программирование в Microsoft .NET / Тест 5

Common Intermediate Language и системное программирование в Microsoft .NET - тест 5

Упражнение 1:
Номер 1
Язык Common Intermediate Language является независимым от аппаратной платформы:

Ответ:

 (1) объектно-ориентированным транслятором 

 (2) объектно-ориентированным интерпретатором 

 (3) объектно-ориентированным компилятором 

 (4) объектно-ориентированным ассемблером 


Номер 2
Инструкции CIL можно разделить на следующие основные группы:

Ответ:

 (1) инструкции общего назначения 

 (2) инструкции для работы с объектной моделью 

 (3) инструкции для генерации и обработки исключений 

 (4) неверифицируемые инструкции 


Номер 3
Инструкция call, вызывающая метод, имеет встроенный операнд, задающий:

Ответ:

 (1) номер переменной 

 (2) номер константы 

 (3) положение секций 

 (4) токен метаданных 


Упражнение 2:
Номер 1
Операнд none имеет размер в байтах равный:

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Операнд int64 имеет размер в байтах равный:

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Операнд token имеет размер в байтах равный:

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5)


Упражнение 3:
Номер 1
Какая инструкция загружает на стек вычислений значение первого аргумента метода:

Ответ:

 (1) arglist 

 (2) ldarg.0 

 (3) call System.String::Compare 

 (4) isinst System.String 


Номер 2
В каком случае будет произведена динамическая проверка типа объекта на стеке вычислений:

Ответ:

 (1) /* 22 | 0000803F */ ldc.r4 1.0 

 (2) /* FE 00 */ arglist 

 (3) /* 28 | (06)0000CD */ call System.String::Compare 

 (4) /* 75 | (02)00000F */ isinst System.String 


Номер 3
В каком случае на стек вычислений будет загружен специальный описатель массива переменных параметров метода:

Ответ:

 (1) /* 28 | (06)0000CD */ call System.String::Compare 

 (2) /* 75 | (02)00000F */ isinst System.String 

 (3) /* 22 | 0000803F */ ldc.r4 1.0 

 (4) /* 1F | 10 */ ldc.i4.s 16 

 (5) /* 02 */ ldarg.0 

 (6) /* FE 00 */ arglist 


Упражнение 4:
Номер 1
Если инструкция, следующая за инструкцией br, имеет абсолютный адрес next_addr, то адрес перехода rel_addr вычисляется так:

Ответ:

 (1) reladdr = target_addr + next_addr 

 (2) reladdr = target_addr - next_addr 

 (3) reladdr := target_addr - next_addr 

 (4) reladdr := target_addr + next_addr 


Номер 2
Ограничениями на последовательности инструкций, введеными для упрощение JIT-компилятора являются следующие:

Ответ:

 (1) ограничение на структуру стека вычислений 

 (2) ограничение на размер стека вычислений 

 (3) ограничение на системные переходы 

 (4) ограничение на обратные переходы 


Номер 3
Когда JIT-компилятор доходит до инструкции ldc.0, расположенной непосредственно после инструкции безусловного перехода br L2, он:

Ответ:

 (1) не может определить для нее стек вычислений 

 (2) не может определить для нее буфер стека вычислений 

 (3) не может определить для нее схему стека вычислений 

 (4) не может определить для нее структуру стека вычислений 


Упражнение 5:
Номер 1
Какие инструкции языка CIL, служат для организации вычислений:

Ответ:

 (1) арифметические инструкции 

 (2) инструкции для загрузки и сохранения значений 

 (3) инструкции для удаления значений 

 (4) инструкции для организации передачи управления 


Номер 2
Для обмена значениями между стеком вычислений и памятью предназначены следующие инструкции:

Ответ:

 (1) инструкции для загрузки и сохранения значений 

 (2) системные инструкции 

 (3) инструкции для организации буфера 

 (4) арифметические инструкции 


Номер 3
Инструкция ldnull имеет следующий код:

Ответ:

 (1) 0x15 

 (2) 0x14 

 (3) 0x22 

 (4) 0x20 

 (5) 0x21 

 (6) 0x23 


Упражнение 6:
Номер 1
Сколько существует вариантов инструкций для работы с переменными и параметрами:

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Код 0xDF соответствует инструкции:

Ответ:

 (1) stind.i 

 (2) stind.r8 

 (3) stind.r4 

 (4) stind.i1 


Номер 3
Инструкция pop имеет следующий код:

Ответ:

 (1) 0x25 

 (2) 0x10 

 (3) 0x4E 

 (4) 0x57 

 (5) 0x26 

 (6) 0x11 


Упражнение 7:
Номер 1
Арифметические инструкции можно разделить на следующие категории:

Ответ:

 (1) унарные операции 

 (2) инструкция ckfinite 

 (3) инструкции преобразования значений 

 (4) бинарные операции 


Номер 2
Среди базовых бинарных операций сложением является инструкция:

Ответ:

 (1) div.un 

 (2) mul 

 (3) xor 

 (4) add 


Номер 3
Какие инструкции выполняют унарные арифмитические операции:

Ответ:

 (1) neg 

 (2) clt 

 (3) ceq 

 (4) shr 

 (5) add.ovf 

 (6) not 


Упражнение 8:
Номер 1
Инструкция ckfinite имеет код:

Ответ:

 (1) 0x65 

 (2) 0xD 

 (3) 0xC3 

 (4) 0x5E 


Номер 2
Какая инструкция интерпретирует целое значение, лежащее на вершине стека, как не имеющее знака и преобразует его к вещественному типу:

Ответ:

 (1) conv.i2 

 (2) conv.r8 

 (3) conv.ovf.i 

 (4) conv.r.un 


Номер 3
Инструкция conv.ovf.u8.un имеет следующий код:

Ответ:

 (1) 0x8B 

 (2) 0x83 

 (3) 0x87 

 (4) 0x82 

 (5) 0x8A 

 (6) 0x89 


Упражнение 9:
Номер 1
Инструкции для организации передачи управления можно разделить на следующие категории:

Ответ:

 (1) инструкции условного перехода 

 (2) инструкция множественного выбора switch 

 (3) инструкция вызова метода call 

 (4) инструкции безусловного перехода 

 (5) инструкция возврата из метода ret 


Номер 2
Сколько существует инструкций безусловного перехода?

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Безусловными инструкциями являются:

Ответ:

 (1) br.s 

 (2) brfalse.s 

 (3) brtrue 

 (4) ble 

 (5) bgt.un.s 

 (6) br. 


Упражнение 10:
Номер 1
Какие инструкции потребляют со стека вычислений один операнд и, в зависимости от его значения, осуществляют или не осуществляют переход по указанному во встроенном операнде относительному адресу:

Ответ:

 (1) базовые инструкции условного перехода 

 (2) дополнительные инструкции условного перехода 

 (3) дополнительные длинные инструкции условного перехода 

 (4) дополнительные короткие инструкции безусловного перехода 


Номер 2
Диаграмма стека для базовых инструкций условного перехода выглядит следующим образом:

Ответ:

 (1) ... , value -> ... 

 (2) ... , value1 , value2 -> ... 

 (3) ... , value1 , value2 ,value3 -> ... 

 (4) ... , value1 , value2 , value3 ,value4 -> ... 


Номер 3
Инструкция beq имеет следующий код:

Ответ:

 (1) 0x3C 

 (2) 0x3D 

 (3) 0x3E 

 (4) 0x3B 

 (5) 0x3F 

 (6) 0x42 


Упражнение 11:
Номер 1
Какая инструкция имеет следующее описание: ceq; brtrue.s?

Ответ:

 (1) 0x2F 

 (2) 0x2E 

 (3) 0x31 

 (4) 0x32 


Номер 2
Какая инструкция имеет следующее описание: clt.un; brtrue.s?

Ответ:

 (1) 0x36 

 (2) bgt.un.s 

 (3) bge.un.s 

 (4) blt.un.s 


Номер 3
Какая инструкция имеет код 0x42?

Ответ:

 (1) call 

 (2) ret 

 (3) ble.un 

 (4) switch 

 (5) bge.s 

 (6) bge.un.s 


Упражнение 12:
Номер 1
Какая иструкция выполняет вызов метода:

Ответ:

 (1) 0x2A 

 (2) 0x28 

 (3) 0x42 

 (4) 0x37 


Номер 2
Какая инструкция имеет код 0x2A?

Ответ:

 (1) call 

 (2) bgt.un.s 

 (3) ret 

 (4) ble.un 


Номер 3
Осуществляет возврат из метода следующая инструкция:

Ответ:

 (1) ret 

 (2) call 

 (3) 0x42 

 (4) switch 

 (5) 0x28 

 (6) 0x2A 




Главная / Программирование / Common Intermediate Language и системное программирование в Microsoft .NET / Тест 5