Page 32 - 4989
P. 32
регістр або комірка пам’яті, а другий визначає кількість зсувів і
може бути або числом, або регістром CL. Інструкції SHLD та
SHRD зсувають два операнди, третім операндом є кількість
зсувів.
Приклад.
Нехай у регістрі АН міститься число 11110011, а у регістрі
AL число 11000011. У коментарях наведено стан регістрів та
флагу CF після виконання відповідних команд зсувів одна за
одною.
SHR AH, 3 ; AH=00011110, CF=0
SHL AH, 4 ; AH=11100000, CF=1
SAR AH, 2 ; AH=11111000, CF=0
RCR AH, 5 ; AH=10000111, CF=1
RCL AH, 2 ; AH=00011111, CF=0
ROR AH, 1 ; AH=10001111, CF=1
ROL AH, 2 ; AH=00111110, CF=0
SHLD AH, AL, 1 ; AH=01111101, AL=10000110
SHRD AH, AL, 3 ; AH=00001111, AL=10110000
3.3.4 Інструкція CPUID
Ця інструкція дозволяє дізнатися деякі характеристики
процесора, такі як точна назва моделі процесора, набір
підтримуваних інструкцій, характеристики кеш-пам’яті тощо.
Інструкція CPUID не має операндів. Натомість для задання
того, які саме характеристики слід отримати, використовується
регістр ЕАХ. Результати виконання розміщуються в регістрах
EAX, ABX, ECX, EDX (залежно від значення ЕАХ можуть бути
задіяні тільки деякі з цих регістрів).
Наприклад, якщо перед виконанням CPUID занести в ЕАХ
число 0, то після її виконання в регістрі ЕАХ буде найбільше
можливе значення, яке можна використовувати в якості
параметра CPUID, а в регістрах EBX, EDX, ECX буде розміщена
12-символьний рядок-ідентифікатор виробника процесора.
MOV EAX, 0
CPUID ; EAX = 00000005, EBX = 68747541,
; ECX = 444D4163, EDX = 69746E65
У даному прикладі в регістрах EBX, EDX, ECX розміщений
32