Внедрение AES в сборе

Привет всем. Я пытаюсь создать код для демонстрации выполнения AES-шифрования в сборке. в последнем руководстве Intel есть

AESENC xmm1, xmm2/m128 -Perform Один раунд AES Encryption Flow круглый ключ из второго операнда источника, работающего на 128-битных данных (состояние) с первого исходный операнд и сохранить результат в операнде-адресате.

AESENCLAST xmm1, xmm2/m128 -Переформация последнего раунда потока шифрования AES круглый ключ из второго операнда источника, работающего на 128-битных данных (состояние) с первого исходный операнд и сохранить результат в операнде-адресате.

AESKEYGENASSIST xmm1, xmm2/m128, imm8 Помогите в расширении ключа шифрования AES, вычислив шаги по созданию круглый ключ для шифрования, используя 128-битные данные, указанные в исходном операнде, и 8-битная константа раунда, указанная как немедленная, сохраняет результат в целевом операнд.

Чтобы сделать это, я буду пытаться встроить сборку, я буду строить ее для сравнения скоростей с обычной AES, сделанной в C! мой первый мозговой штурм заставил меня подумать о том, как использовать xmm в встроенной сборке любая помощь/мозговой штурм/обмен идеями относительно моих проблем или идеи в целом приветствуются Приветствия =)

Ответы

Ответ 1

Если вы хотите получить 128-битное значение в регистре XMM, просмотрите инструкции MOVDQA и MOVDQU.