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

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

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

Ответ:

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

 (2) инструкции для работы с массивами 

 (3) инструкции для работы с типами-значениями 

 (4) инструкции для работы с типизированными ссылками 


Номер 2
Диаграмма стека для инструкции newobj:

Ответ:

 (1) ... , obj, arg1, ... , argN -> ... , retVal 

 (2) ... , arg1, ... , argN -> ... , obj 

 (3) ... -> ... , obj 

 (4) ... , obj -> ... , obj 


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

Ответ:

 (1) castclass 

 (2) isinst 

 (3) newobj 

 (4) idfld 

 (5) sdfld 

 (6) callvirt 


Упражнение 2:
Номер 1
Какая инструкция загружает значение поля объекта:

Ответ:

 (1) 0x7B 

 (2) sdfld 

 (3) 0x7D 

 (4) idfld 


Номер 2
Загружает адрес статического поля объекта следующая инструкция:

Ответ:

 (1) idsflda 

 (2) sdfld 

 (3) 0x80 

 (4) 0x7F 


Номер 3
Диаграмма стека для инструкции callvirt:

Ответ:

 (1) ... , arg1, ... , argN -> ... , retVal 

 (2) ... , obj, ... , argN -> ... , retVal 

 (3) ... , obj, arg1, ... , ... , retVal 

 (4) ... , obj, arg1, ... , argN -> ... 

 (5) obj, arg1, ... , argN -> ... 

 (6) ... , obj, arg1, ... , argN -> ... , retVal 


Упражнение 3:
Номер 1
Инструкция callvirt имеет следующий код:

Ответ:

 (1) 0x80 

 (2) 0x7B 

 (3) 0x6F 

 (4) 0x72 


Номер 2
Какая инстукция создает на вершине стека объект-строку:

Ответ:

 (1) 0x72 

 (2) callvirt 

 (3) 0x6F 

 (4) ldstr 


Номер 3
Диаграмма стека для инструкции ldstr:

Ответ:

 (1) ... -> ... , arg 

 (2) ... -> ... , obj 

 (3) arg, ... -> ... , obj 

 (4) ... -> ... , objN 


Упражнение 4:
Номер 1
Инструкция newarr выделяет память под одномерный массив, индексируемый:

Ответ:

 (1) с единицы 

 (2) со ста 

 (3) с тысячи 

 (4) с нуля 


Номер 2
Диаграмма стека для инструкции newarr:

Ответ:

 (1) ... , num -> array 

 (2) ... , num -> ... , array 

 (3) num -> ... , array 

 (4) ... , ... , array 


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

Ответ:

 (1) newarr 

 (2) ldlen 

 (3) 0x8D 

 (4) ldelema 

 (5) 0x8E 

 (6) 0x8F 


Упражнение 5:
Номер 1
Инструкции ldelem предназначены для загрузки значения элемента:

Ответ:

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

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

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

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


Номер 2
Инструкция ldelem.u2 имеет код:

Ответ:

 (1) 0x96 

 (2) 0x93 

 (3) 0x98 

 (4) 0x92 


Номер 3
Диаграмма стека для инструкций ldelem выглядит так:

Ответ:

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

 (2) ... , array, index -> ... , value 

 (3) ... , array, value 

 (4) ... , array, index -> ... 


Упражнение 6:
Номер 1
Диаграмма стека для инструкции ldelema выглядит следующим образом:

Ответ:

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

 (2) ... , array, index, value -> ... 

 (3) ... , array -> ... , length 

 (4) ... , array, index -> ... , addr 


Номер 2
Диаграмма стека для инструкций stelem:

Ответ:

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

 (2) ... , array, index, ... 

 (3) array, index, value -> ... 

 (4) ... , array, value -> ... 


Номер 3
Инструкция stelem.i8 имеет код:

Ответ:

 (1) 0x9C 

 (2) 0x9F 

 (3) 0xA0 

 (4) 0xA1 

 (5) 0xA2 

 (6) 0x9D 


Упражнение 7:
Номер 1
Инструкция initobj потребляет со стека вычислений адрес значения:

Ответ:

 (1) ... , addr -> ... 

 (2) ... , addr -> 

 (3) addr -> ... 

 (4) ... , ... addr -> 


Номер 2
Какая инструкция заполняет все поля значения нулями:

Ответ:

 (1) sizeof 

 (2) initobj 

 (3) cpobj 

 (4) stobj 


Номер 3
Какая инструкция загружает на стек размер значения указанного типа:

Ответ:

 (1) ldobj 

 (2) box 

 (3) unbox 

 (4) ldtoken 

 (5) sizeof 

 (6) cpobj 


Упражнение 8:
Номер 1
Диаграмма стека для инструкций sizeof:

Ответ:

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

 (2) ... -> ... , size 

 (3) ... , size 

 (4) ... -> 


Номер 2
Диаграмма стека для инструкций stobj:

Ответ:

 (1) ..., addr, val0bj ->... 

 (2) ..., addr, -> ..., val0bj 

 (3) ..., destAddr, srcAddr ->... 

 (4) ..., obj ->..., ptr 


Номер 3
Какая инструкция имеет следующую диаграмму стека: ..., obj ->..., ptr?

Ответ:

 (1) ldtoken 

 (2) unbox 

 (3) box 

 (4) stobj 


Упражнение 9:
Номер 1
Какая инструкция имеет следующую диаграмму стека: ..., value ->..., obj?

Ответ:

 (1) unbox 

 (2) initobj 

 (3) sizeof 

 (4) box 


Номер 2
Какая инструкция применяется для работы с библиотекой рефлексии:

Ответ:

 (1) stobj 

 (2) sizeof 

 (3) ldtoken 

 (4) initobj 


Номер 3
Инструкция ldtoken имеет код:

Ответ:

 (1) 0x8C 

 (2) 0x79 

 (3) 0xD0 

 (4) 0x71 

 (5) 0x70 

 (6) 0x15 


Упражнение 10:
Номер 1
Типизированные ссылки в системе типов .NET реализованы исключительно для поддержки некоторых особенностей синтаксиса и семантики языка:

Ответ:

 (1) C# 

 (2) Visual Basic .NET 

 (3) C++ 

 (4) Basic 


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

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 3
Инструкция mkrefany предназначена для:

Ответ:

 (1) создания типизированных ссылок 

 (2) сохранения типизированных ссылок 

 (3) удаления типизированных ссылок 

 (4) использования типизированных ссылок 


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

Ответ:

 (1) 0xC2 

 (2) 0xC3 

 (3) 0xC6 

 (4) 0xC5 


Номер 2
Диаграмма стека для инструкций mkrefany:

Ответ:

 (1) ... , ptr -> ... , typedRef 

 (2) ... , typedRef -> ... , ptr 

 (3) ... , typedRef -> ... , type 

 (4) ... , typedRef -> ... 


Номер 3
Загружает токен, хранящийся в типизированной ссылке следующая инструкция:

Ответ:

 (1) refanytype 

 (2) sizeof 

 (3) refanyval 

 (4) mkrefany 

 (5) ldtoken 


Упражнение 12:
Номер 1
Диаграмма стека для инструкций refanytype:

Ответ:

 (1) ... , typedRef -> 

 (2) typedRef -> ... , type 

 (3) ... , typedRef -> ... , type 

 (4) ... , typedRef -> ... 


Номер 2
Инструкция refanyval имеет код:

Ответ:

 (1) 0xC0 

 (2) 0xC1 

 (3) 0xC2 

 (4) 0xC3 


Номер 3
Диаграмма стека для инструкций refanyval:

Ответ:

 (1) typedRef -> ... , ptr 

 (2) ... , typedRef -> ... 

 (3) ... , typedRef -> ... , obj 

 (4) ... , typedRef -> ... , ptr 

 (5) ... , typedRef -> obj 




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