В настоящее время я пытаюсь написать функцию на ассемблере и хочу переместить 128 бит строки, расположенной по адресу памяти, хранящемуся в rdx
, в регистр xmm1
.
Если я использую movdqa xmm1, [rdx]
, я получаю исключение нарушения прав доступа при чтении в позиции 0xFFFFFFFFFFFFFFFF
.
Если я попытаюсь использовать вместо этого movdqu xmm1, [rdx]
, я не получу исключение. Проблема в том, что если я использую movdqu, порядок битов инвертируется.
Поэтому я не знаю, почему я получаю исключение при использовании movdqa
, но не при использовании movdqu
mmap()
(или, не дай Бог, вы назначаете-1
указателю вручную в своем коде). - person EOF   schedule 11.10.2016The problem is if i use movdqu, the order of the bits is inverted.
Это отдельная проблема. Если бы ваш адрес был выровнен, вы бы получили идентичные результаты от MOVQDU и MOVDQA. - person Peter Cordes   schedule 12.10.2016