如何在汇编代码 x86 和 SSE 中使用向量

How to use vectors in assembly code x86 and SSE

我不知道如何在 x86 中访问 stl 矢量。我试过那样做,但我有一些错误。

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 语言做同样的事情。

提前致谢!

stl 向量是对象。除非您知道确切的 class 布局,否则您无法直接访问它们。您可能应该将一个指向数组的指针和一个大小分别传递给您的汇编函数,例如asm(vector.data(), vector.size()) 所以编译器会处理 C++ 的东西。