ход 2 байта = word
размер операнда. movw (%rdi), %si
.
Или просто позвольте ассемблеру определить размер операнда из регистра mov (%rdi), %si
. Они собираются в идентичный машинный код (что имеет значение), просто разные способы его записи.
Запись в ESI будет расширяться от нуля до полного RSI, но запись в младший байт (SIL) или слово (SI) оставляет верхние байты неизмененными. (т.е. объединяет несколько байтов в RSI.) Причиной этого различия являются разные решения, сделанные 386 архитекторами и AMD64 при расширении x86 с более широкими регами. Почему инструкции x86-64 для 32-битных регистров обнуляют верхнюю часть полного 64-битного регистра?
Смысл этого назначения состоит в том, чтобы убедиться, что вы понимаете, насколько частичнымрегистрирует псевдоним на RSI.