Page 35 - 4989
P. 35
short y[10];
__asm
{
mov eax, x
mov bx, y[5]
lea esi, y
mov ebx, [esi]
}
Якщо необхідно виконати операцію між регістром та
масивом символів, слід використовувати модифікатор byte ptr,
word ptr або dword ptr для вказання кількості байт, над якими
виконується операція.
Приклад:
char str[] = “abcdef”;
char buffer[16];
__asm
{
mov dx, word ptr str
mov dword ptr buffer, eax
}
Тут у регістр dx копіюються два перші символи масиву str, а
в перші 4 символи масиву buffer копіюються 4 байти з регістру
еах.
Таким чином, як вхідні дані, так і результати роботи
асемблерної вставки можна розміщувати в локальних змінних,
оголошених зовні цієї вставки.
3.4 Порядок виконання роботи
1. У документації до інструкції CPUID знайти спосіб
отримання характеристик, зазначених в індивідуальному
завданні.
2. Створити консольний проект у середовищі Microsoft
Visual Studio.
3. Написати асемблерний код для виконання індивідуального
завдання та оформити його як асемблерну вставку в
консольній програмі мовою С++.
4. Додати у програму код мовою С++ для виводу результату
на екран.
35