Я смотрю спецификацию Intel: Архитектура Intel® 64 и IA-32
Руководство разработчика программного обеспечения , и я не могу найти разницу между
- MOVDQA : сдвинуть выровненный двойной четырехугольник
- MOVAPS : перемещение выровнено в упакованном виде одинарной точности
В спецификации Intel я могу найти обе инструкции:
Эта инструкция может использоваться для загрузки регистра XMM из 128-битного
ячейка памяти, чтобы сохранить содержимое регистра XMM в
128-битная ячейка памяти или для перемещения данных между двумя регистрами XMM.
Единственная разница:
Чтобы переместить двойное четырехзначное слово в или из невыровненных областей памяти, используйте
инструкция MOVDQU.
и
Чтобы переместить упакованные значения с плавающей запятой одинарной точности в или из
Выровненные ячейки памяти, используйте инструкцию MOVUPS.
Но я не могу найти причину, почему две разные инструкции?
Так кто-нибудь может объяснить разницу?