0

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言語でも同じことをしたいです。

前もって感謝します!

4

1 に答える 1

4

stl ベクトルはオブジェクトです。正確なクラス レイアウトを知らない限り、それらに直接アクセスすることはできません。おそらく、配列へのポインターとサイズをアセンブリ関数に別々に渡す必要があります。たとえばasm(vector.data(), vector.size())、コンパイラーが c++ の処理を​​行うようにします。

于 2016-05-02T15:04:28.463 に答える