Как вы перемещаете 128-битные значения между регистрами XMM?
Казалось бы, тривиальная проблема в сборке: я хочу скопировать весь регистр XMM0 в XMM3. я пробовал
movdq xmm3, xmm0
но MOVDQ нельзя использовать для перемещения значений между двумя регистрами XMM. Что мне делать вместо этого?
1 ответ
Решение
Это movapd
, movaps
, или же movdqa
movaps xmm3, xmm0
Они все делают одно и то же, но есть одна загвоздка:
movapd
а такжеmovaps
работать в области с плавающей запятой.movdqa
работает в целочисленной области
Используйте подходящий в соответствии с вашим типом данных, чтобы избежать сбоев при смене домена.
Кроме того, нет причин использовать movapd
, Всегда используйте movaps
вместо того, чтобы movapd
занимает дополнительный байт для кодирования.