|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 17, 2004 01:40:29 Подскажите пожалуйста как правильно использовать команду MOVAPS... Дело в то что если просто применять эту команду то она генерирует какое то исключение... Я так понял что что то нужно еще... Заранее благодарен. |
|
|
Дата: Янв 17, 2004 01:51:38 · Поправил: keYMax MOVAPS xmm/m, xmm/m - команда копирует четыре FP-элемента одним из следующих способов: из памяти в XMM-регистр из XMM-регистра в память из одного XMM-регистра в другой Если не ошибаюсь, то обращение в память должно быть по адресу, кратному 16 байтам; в противном случае генерируется исключение. |
|
|
Дата: Янв 17, 2004 02:00:12 · Поправил: emergenter У меня массив из 32 элементов по 4 байта! т.е. в EAX - начало массива я делаю так: xor ecx,ecx
cikl:
movaps xmm1,[eax+ecx]
add ecx, dword 16 ; смещение на 4 элемента по
; 4 байта
cmp ecx, 128 ; 128 байт = 32 элемента по
; 4 байта
jne cikl
Если не трудно подскажите чего не хватает для правильной работы movaps? |
|
|
Дата: Янв 22, 2004 11:50:32 Что никто не пробывал чтоли? |
|
|
Дата: Янв 22, 2004 22:22:32 Попробовал. Нужно поставить в секции .data директиву align 16. Т.е выровнять данные на границу 16 байт. Тогда в твоем коде не будет возникать ошибка. |
|
|
Дата: Янв 28, 2004 20:07:45 keYMax Спасибо за дельный совет. А если у меня указатель на массив из другого модуля (к примеру)! Как тут быть? |
|
|
Дата: Янв 28, 2004 20:33:43 emergenter Также! Тебе необходимо будет позаботиться о том, чтобы твой массив был выравнен. Видимо, из-за этого и возникала ошибка. |
|
|
Дата: Янв 29, 2004 10:41:08 dz 3BePIOra Какие действия можно предпринять чтобы выровнять такой массив? |
|
|
Дата: Янв 29, 2004 10:48:46 Ну, если модуль твой собственный, то ты сам хозяин данных и просто пиши перед определением требуемого массива ALIGN 16... В противном случае, я затрудняюсь сказать, как можно обойти проблему... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069 |