4 / 4 / 0
Регистрация: 27.03.2011
Сообщений: 38
|
||||||
1 | ||||||
GCC Inline Assembly перевести в Visual Studio Inline Assembler26.05.2012, 14:32. Показов 1928. Ответов 2
Метки нет (Все метки)
Здравствуйте.
Есть код на GCC Inline Assembly и его нужно перевести в Visual Studio Inline Assembler. Не работал с GCC Inline Assembly и знания в asm довольно поверхностные, поэтому возникает много сложностей. Вставка копирует данные из указателя src в регистры xmm, по 16 байт за раз. Собственно вставка нужна для замера скорости чтения из RAM (для этого и используется movntdqa) и ничего полезного не делает. Проблема с пониманием директивы .align (выравнивание), т.е. как ее реализовать в Visual Studio Inline Assembler. Буду рад отдельным советам или если кто-то может, полному коду на VS Inline ASM.
0
|
26.05.2012, 14:32 | |
Ответы с готовыми решениями:
2
переписать код в GCC Inline Assembly Ошибка компиляции GCC Inline Assembly GCC & Assembly inline не могу разобраться с GCC Inline Assembly (код внутри) |
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|
26.05.2012, 14:49 | 2 |
ignisdivine, к сожалению я сейчас за стареньким компом, проц не поддерживает инструкции sse4, так что проверить не могу. Попробуй в Visual Studio использовать для выделения памяти функцию _aligned_malloc, тогда проблем с выравниванием не будет. Также, адреса можно выравнивать вручную. Например, посмотри как это делается в crt функциях Visual Studio. (В папке Microsoft Visual Studio x.0\VC\crt\src\intel\ файлы memcpy.asm, memmove.asm и т.д.)
0
|
4 / 4 / 0
Регистрация: 27.03.2011
Сообщений: 38
|
||||||
26.05.2012, 21:03 [ТС] | 3 | |||||
Спасибо, а можете объяснить, зачем это используется конкретно здесь?
Добавлено через 19 минут По логике вроде как понятно, что операнд %1 src смещается на 16 байт, а как это выполнить в Visual Studio?
0
|
26.05.2012, 21:03 | |
Помогаю со студенческими работами здесь
3
Inline функции - на сколько должна быть маленькая функция, чтоб она подошла под inline? inline функции vs инструкции inline функций inline assembler в СИ Почему ругается gcc при использовании inline + setjmp() ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |