Как использовать векторы в ассемблерном коде x86 и SSE

Я не знаю, как получить доступ к вектору STL в x86. Я пытался сделать это так, но у меня есть некоторые ошибки.

mov ebx, stl_vector 
mov eax, [ebx] ;Here I want to store the first element of the vector
mov edx, [ebx + 4] ; I want to store the second element of the vector

Я хочу сделать то же самое на языке SSE.

Заранее спасибо!

1 ответ

Решение

STL векторы являются объектами. Если вы не знаете точный макет класса, вы не можете получить к ним доступ напрямую. Вы, вероятно, должны передать указатель на массив и размер отдельно для вашей функции сборки, например asm(vector.data(), vector.size()) поэтому компилятор заботится о вещах с ++.

Другие вопросы по тегам