Тестові запитання до 1-го модуля СПОС Лектор: доц. Зербіно Д.Д. (Спеціальність – КН, 2-й курс) Запитання: "Клас вікон для відображення анімаційних картинок" Відповідь: "SysAnimate32" Запитання: "Яке повідомлення завантажує відео-файл у вікно класу SysAnimate32" Відповідь: "ACM_OPEN" Запитання: "Отримати ідентифікатор спеціалізованого каталогу" Відповідь: "SHGetSpecialFolderLocation" Запитання: "Отримати шлях спеціалізованого каталогу по його ідентифікатору" Відповідь: "SHGetPathFromIDList" Запитання: "Відновити прямокутну дільницю екрану" Відповідь: "InvalidateRect" Запитання: "Присвоїти байту за адресою ESI+EDX+2 значення 5" Відповідь: "MOV BYTE PTR [ESI+EDX+2],5" Запитання: "Зберегти EAX за лінійною адресою, що утворюється в результаті додавання ESI і EBX" Відповідь: "MOV [ESI+EBX],EAX" Запитання: "Зберегти в стеку адресу змінної X1" Відповідь: "PUSH OFFSET X1" Запитання: "Витягнути зі стеку 2 байти в комірку за адресою ESI" Відповідь: "POP WORD PTR [ESI]" Запитання: "Зберегти в стеку всі 32-х бітні регістри, окрім регістру прапорців" Відповідь: "PUSHAD" Запитання: "Зберегти EDX в змінній Zx" Відповідь: "MOV ZX,EDX" Запитання: "Порівняти EСX з числом 5" Відповідь: "CMP ECX,5" Запитання: "Циклічно зсунути EDX через прапорець переносу вправо на 1 біт" Відповідь: "RCR EDX,1" Запитання: "Повідомлення, що передається у вікно одразу ж після його створення" Відповідь: "WM_CREATE" Запитання: "Яким повідомленням можна встановити позицію індикатора копіювання у вікні класу msctls_progress32" Відповідь: "PBM_SETPOS" Запитання: "Яким повідомленням можна встановити малюнок на кнопку" Відповідь: "BM_SETIMAGE" Запитання: "Яким повідомленням можна встановити малюнок у вікно класу Static" Відповідь: "STM_SETIMAGE" Запитання: "Повідомлення, що передається у вікно коли намальовані в ньому об’єкти необхідно перемалювати" Відповідь: "WM_PAINT" Запитання: "Отримати розмір малюнка через його хендл" Відповідь: "GetObjectA" Запитання: "Відправити повідомлення на обробку" Відповідь: "DispatchMessageA" Запитання: "Додати до черги повідомлення 2-го рівня" Відповідь: "TranslateMessage" Запитання: "Отримати хендл програмного модуля" Відповідь: "GetModuleHandleA" Запитання: "Як називається регістр - вказівник верхівки стеку" Відповідь: "ESP" Запитання: "Як називається перший сектор на вінчестері (на ньому знаходиться завантажувач ОС)" Відповідь: "MBR" Запитання: "Перелічити через ',' сегментні регістри: коду програми, сегменту даних, стеку, додаткового сегменту даних" Відповідь: "CS,DS,SS,ES" Запитання: "Стандартна назва класу вікон для вводу i редагування тексту" Відповідь: "Edit" Запитання: "Стандартна назва класу вікон типу 'кнопка'" Відповідь: "Button" Запитання: "Стандартна назва класу вікон для відображення малюнків та статичних текстів" Відповідь: "Static" Запитання: "Стандартна назва класу вікон для відображення рядків, що організовані в список" Відповідь: "ListBox" Запитання: "Стандартна назва класу вікон для відображення структури дерева" Відповідь: "SysTreeView32" Запитання: "Стандартна (системна) назва класу вікон типу ‘трекбар’" Відповідь: "msctls_trackbar32" Запитання: "Повідомлення для вставки пункту в структуру дерева" Відповідь: "TVM_INSERTITEM" Запитання: "Повідомлення для додавання рядка в список" Відповідь: "LB_ADDSTRING" Запитання: "Повідомлення від кнопок меню та дочірніх елементів вікна" Відповідь: "WM_COMMAND" Запитання: "Повідомлення для встановлення трекбару (msctls_trackbar32) в задану позицію" Відповідь: "TBM_SETPOS" Запитання: "Повідомлення від натиснення лівої кнопки мишi" Відповідь: "WM_LBUTTONDOWN" Запитання: "Повiдомлення що надходить після відпускання лівої кнопки мишi" Відповідь: "WM_LBUTTONUP" Запитання: "Повідомлення від горизонтального скролінгу" Відповідь: "WM_HSCROLL" Запитання: "Стиль для дочірніх вікон" Відповідь: "WS_CHILD" Запитання: "Стиль вікна, що дозволяє міняти його розмір мишкою" Відповідь: "WS_THICKFRAME" Запитання: "Функція для створення списку малюнків (ImageList)" Відповідь: "ImageList_Create" Запитання: "Функція для додавання малюнку в список малюнків (ImageList)" Відповідь: "ImageList_Add" Запитання: "Повідомлення для встановлення заданого списку малюнків для відображення дерева у вікнах SysTreeView32" Відповідь: "TVM_SETIMAGELIST" Запитання: "Перетворити байтове число зі знаком, що знаходиться в AL у слово зі знаком, що знаходиться в AX" Відповідь: "CBW" Запитання: "Перетворити слово зі знаком, що знаходиться в AX у двійне слово зі знаком, що знаходиться в EAX" Відповідь: "CWDE" Запитання: "Функцiя для переводу числа в текстовий рядок (форматний вивід)" Відповідь: "_wsprintfA" Запитання: "Функція для отримання імені комп'ютера" Відповідь: "GetComputerNameA" Запитання: "Отримати графічний контекст вікна" Відповідь: "GetDC" Запитання: "Звільнити графічний контекст вікна" Відповідь: "ReleaseDC" Запитання: "Поставити кольорову крапку в заданих координатах" Відповідь: "SetPixel" Запитання: "Отримати колір крапки в заданих координатах" Відповідь: "GetPixel" Запитання: "Завантажити BMP-зображення з файлу i отримати його хендл" Відповідь: "LoadImageA" Запитання: "Основна структура для опису бітових зображень, яка входить у файл типу .BMP" Відповідь: "BITMAPINFO" Запитання: "Створити Bitmap за описом та прямим доступом до його бітів кольору" Відповідь: "CreateDIBSection" Запитання: "Переписати інформацію кольорів Bitmap у заданий буфер" Відповідь: "GetDIBits" Запитання: "Програма для створення бібліотечного файлу з .DLL-файлу" Відповідь: "implib.exe" Запитання: "Програма для визначення назв API-функцій, які є в .DLL-файлі" Відповідь: "impdef.exe" Запитання: "Програма для формування .EXE - файлу з кодів та ресурсних даних" Відповідь: "tlink32.exe" Запитання: "Програма для трансляції асемблерних команд в їх код" Відповідь: "tasm32.exe" Запитання: "Записати в байт за адресою ESI+EBX число 5" Відповідь: "MOV BYTE PTR [ESI+EBX],5" Запитання: "Додати до комірки за адресою ESI+EBX вміст регістра EAX" Відповідь: "ADD [ESI+EBX],EAX" Запитання: "Відняти від регістра EDX змінну Z" Відповідь: "SUB EDX,Z" Запитання: "Створити сумісний графічний контекст" Відповідь: "CreateCompatibleDC" Запитання: "Скопіювати прямокутний графічний фрагмент" Відповідь: "BitBlt" Запитання: "Розтягнути або звузити прямокутний графічний фрагмент" Відповідь: "StretchBlt" Запитання: "Побудувати криву Безьє" Відповідь: "PolyBezier" Запитання: "Перевірити чи є в черзі повідомлення" Відповідь: "PeekMessageA" Запитання: "Створити Bitmap заданого розміру i сумісний із заданим графічним контекстом" Відповідь: "CreateCompatibleBitmap" Запитання: "Завантажити EСX із змінної Z" Відповідь: "MOV ECX,Z" Запитання: "Завантажити в EBX число 5" Відповідь: "MOV EBX,5" Запитання: "Записати в змінну Z число 5" Відповідь: "MOV Z,5" Запитання: "Порівняти байт за адресою EDI з числом 5" Відповідь: "CMP BYTE PTR [EDI],5" Запитання: "Отримати координати курсору" Відповідь: "GetCursorPos" Запитання: "Порівняти EСX зі змінною Z" Відповідь: "CMP ECX,Z" Запитання: "Функція стандартної обробки повідомлень, які надходять у віконну процедуру" Відповідь: "DefWindowProcA" Запитання: "Циклічно зсунути EBX вліво на 5 біт" Відповідь: "ROL EBX,5" Запитання: "Зареєструвати клас з малою iконкою" Відповідь: "RegisterClassExA" Запитання: "Отримати хендл батьківського вікна" Відповідь: "GetParent" Запитання: "Отримати назву класу вікна" Відповідь: "GetClassNameA" Запитання: "Циклічно зсунути EDX вправо на 5 бiт" Відповідь: "ROR EDX,5" Запитання: "Циклічно зсунути EDI через CF вправо на 5 біт" Відповідь: "RCR EDI,5" Запитання: "Циклічно зсунути ESI через CF вліво на 5 біт" Відповідь: "RCL ESI,5" Запитання: "Поділити (DX AX) на BX без врахування знаку" Відповідь: "DIV BX" Запитання: "Перемножити EAX на комірку [ESI] без врахування знаку" Відповідь: "MUL DWORD PTR [ESI]" Запитання: "Перемножити EAX на ESI з врахуванням знаку" Відповідь: "IMUL ESI" Запитання: "Поділити AX на BL з врахуванням знаку" Відповідь: "IDIV BL" Запитання: "Збільшити комірку довжиною в слово за адресою EDI+EAX" Відповідь: "INC WORD PTR [EDI+EAX]" Запитання: "Зменшити комiрку довжиною в 1 байт за адресою EBX" Відповідь: "DEC BYTE PTR [EBX]" Запитання: "Перейти на мiтку M1, якщо CF = 0" Відповідь: "JNC M1" Запитання: "Перейти на мітку M1, якщо результат від’ємний (встановився знаковий біт)" Відповідь: "JS M1" Запитання: "Перейти на мітку M1, якщо результат нульовий" Відповідь: "JZ M1" Запитання: "Перейти на мітку M1, якщо результат порівняння чисел зі знаком менше нуля" Відповідь: "JL M1" Запитання: "Перейти на мітку M1, якщо результат порівняння чисел зі знаком більше нуля" Відповідь: "JG M1" Запитання: "Перейти на мітку M1, якщо знакове переповнення" Відповідь: "JO M1" Запитання: "Перейти на мітку M1, якщо перший операнд більше другого в команді CMP" Відповідь: "JA M1" Запитання: "Арифметичний зсув вліво на 1 біт регістра EAX" Відповідь: "SAL EAX,1" Запитання: "Виклик підпрограми, адреса якої є в регістрі ESI" Відповідь: "CALL ESI" Запитання: "Виклик підпрограми, адреса якої є в комірці пам’яті, на яку вказує регістр ESI" Відповідь: "CALL [ESI]" Запитання: "Встановити CF в 1" Відповідь: "STC" Запитання: "Скинути CF в 0" Відповідь: "CLC" Запитання: "Інвертувати CF" Відповідь: "CMC" Запитання: "Скинути DF в 0" Відповідь: "CLD" Запитання: "Встановити DF в 1" Відповідь: "STD" Запитання: "AL -> ES[EDI]; EDI=EDI+1" Відповідь: "STOSB" Запитання: "AL <- DS[ESI]; ESI=ESI+1" Відповідь: "LODSB" Запитання: "Змінити знак числа в EAX" Відповідь: "NEG EAX" Запитання: "Інвертувати число в EAX" Відповідь: "NOT EAX" Запитання: "Витягнути зі стеку 2 байти в комірку за адресою ESI" Відповідь: "POP WORD PTR [ESI]" Запитання: "Отримати поточний каталог" Відповідь: "GetCurrentDirectoryA" Запитання: "Визначити тип диску" Відповідь: "GetDriveTypeA" Запитання: "Отримати системний каталог" Відповідь: "GetSystemDirectoryA" Запитання: "Знайти шлях до тимчасових файлів" Відповідь: "GetTempPathA" Запитання: "Копiювати файл" Відповідь: "CopyFileA" Запитання: "Знищити файл" Відповідь: "DeleteFileA" Запитання: "Отримати атрибути файлу" Відповідь: "GetFileAttributesA" Запитання: "Отримати локальний час" Відповідь: "GetLocalTime" Запитання: "Отримати перелік дисків в EAX" Відповідь: "GetLogicalDrives" Запитання: "Знищити каталог" Відповідь: "RemoveDirectoryA" Запитання: "Витягнути зі стеку в регістр EAX" Відповідь: "POP EAX" Запитання: "Змiнити мiтку диску" Відповідь: "SetVolumeLabelA" Запитання: "Створити або відкрити файл" Відповідь: "CreateFileA" Запитання: "Закрити Хендл" Відповідь: "CloseHandle" Запитання: "Читати файл" Відповідь: "ReadFile" Запитання: "Зарезервувати віртуальну глобальну пам'ять" Відповідь: "GlobalAlloc" Запитання: "Зафіксувати віртуальний блок пам’яті" Відповідь: "GlobalLock" Запитання: "Активізувати діалог для вибору файлу" Відповідь: "GetOpenFileNameA" Запитання: "Отримати часи створення, останнього запису та читання файлу" Відповідь: "GetFileTime" Запитання: "Перетворити упакований час в мiлiсекундах в звичайне представлення" Відповідь: "FileTimeToSystemTime" Запитання: "Відправити системне повідомлення та отримати на нього відповідь" Відповідь: "SendMessageA" Запитання: "Відкрити файл через програмну оболонку" Відповідь: "ShellExecuteA" Запитання: "Розпочати фрагмент сегменту даних" Відповідь: ".DATA" Запитання: "Створити вікно з розширеними стилями" Відповідь: "CreateWindowExA" Запитання: "Відновити зі стеку всі 32-х бітні регістри окрім прапорців" Відповідь: "POPAD" Запитання: "Встановити параметри ScrollBar" Відповідь: "SetScrollInfo" Запитання: "Створити шрифт за описом" Відповідь: "CreateFontIndirectA" Запитання: "Вибрати об'єкт в графічний контекст" Відповідь: "SelectObject" Запитання: "Вивід тексту згідно графічного контексту в заданих координатах" Відповідь: "TextOutA" Запитання: "Знищити графічний об'єкт" Відповідь: "DeleteObject" Запитання: "Встановити генератор повідомлень WM_TIMER" Відповідь: "SetTimer" Запитання: "Отримати довжину рядка" Відповідь: "lstrlen" Запитання: "Вiдновити зi стеку молодшу частину регістру прапорців" Відповідь: "POPF" Запитання: "З'єднати два рядки" Відповідь: "lstrcat" Запитання: "Отримати розмiр екрану" Відповідь: "GetDeviceCaps" Запитання: "Зберегти в стеку 32-бiтний регістр прапорців" Відповідь: "PUSHFD" Запитання: "Змiнити розмiр та координати вікна" Відповідь: "SetWindowPos" Запитання: "Отримати хендли всіх вікон верхнього рівня" Відповідь: "EnumWindows" Запитання: "Знайти перший файл по шаблону" Відповідь: "FindFirstFileA" Запитання: "Знайти решту файлів по шаблону" Відповідь: "FindNextFileA" Запитання: "Отримати повний шлях та назву даної програми" Відповідь: "GetModuleFileNameA" Запитання: "Отримати або встановити поточну позицію у файлі" Відповідь: "SetFilePointer" Запитання: "Отримати розмір файлу" Відповідь: "GetFileSize" Запитання: "Повідомлення від натиснення правої кнопки мишi" Відповідь: "WM_RBUTTONDOWN" Запитання: "Повідомлення від відпускання правої кнопки мишi" Відповідь: "WM_RBUTTONUP" Запитання: "Повідомлення, що надходять при русі мишою" Відповідь: "WM_MOUSEMOVE" Запитання: "Повідомлення, що надходять при натисканні на колесо миші" Відповідь: "WM_MBUTTONDOWN" Запитання: "Додати по MOD(2) комірку пам’яті за адресою мітки ALPHA та число 3" Відповідь: "XOR ALPHA,3" Запитання: "Кон’юнкція комірки довжиною 4 байти та за адресою EDX та числа 3" Відповідь: "AND DWORD PTR [EDX],3" Запитання: "Диз’юнкція регістрів AL та BL, результат в BL" Відповідь: "OR BL,AL" Запитання: "Додавання з врахуванням переносу від попередньої операції регістру DL та символу 0" Відповідь: "ADC DL,”0” " Запитання: "Віднімання з врахуванням переносу регістру AH від комірки з адресою EDI" Відповідь: "SBB [EDI],AH"