Автор Коля Москалёв задал вопрос в разделе Другие языки и технологии
Ассемблер, регистры процессора и получил лучший ответ
Ответ от Миоко Таканава[гуру]
Младшая половина регистра EAX - это AX.
Младший байт EAX - это AL.
Второй справа байт EAX - это AH (разряды 15 ...8).
Напрямую к старшей половине EAX обратиться нельзя, так как в системе команд процессора такая адресация не предусмотрена. Только с помощью сдвига на 16 бит вправо или через ОЗУ обращением со смещением в 2 байта.
Аналогично в 64-разрядном процессоре:
EAX - это младшая половина регистра RAX. К старшей половине тоже нельзя обратиться напрямую.
В новых 64-разрядных регистрах, например для регистра R8:
R8B - это младший байт регистра R8;
R8W - это младшее слово (два младших байта) регистра R8;
R8D - это младшая половина регистра R8.
Аналога AH (второго справа байта) у новых регистров нет.
Миоко Таканава
(51022)
Умножением - это не по-ассемблерному. Это делается логическим сдвигом.
Например, записать в EAX число 12345678h:
mov ax, 1234h
shl eax, 16
mov ax, 5678h
теперь в eax 12345678h.
Кроме сдвигов или прямой адресации в памяти существует ещё один, достаточно элегантный, способ обращения к старшему слову регистров - с помощью команды bswap.