скорее всего, ошибка выравнивания стека
Ошибка выравнивания аргумента movdqa, не обязательно это стек.
Если так, то в каком месте мне еще нужно вызывать выравнивание?
@zmeykas а в каком вы уже его вызвали? Выровнен должен быть стек, а не код.
Сформировать выровненный по 16 байт кадр стека можно, например, так:
my_asm_function:
pushq %rbp
movq %rsp, %rbp
subq $512, %rsp # минимальный размер кадра -- 512 байт
andq $-16, %rsp # выравнивание по 16 байт
...
popq %rbp
ret
Но у вас rbx не выравнен, а он берётся из второго аргумента функции. Равняйте его. Ну или не используйте movdqa, а используйте movdqu