0
x86のstlベクターにアクセスする方法がわかりません。私はそれをそうしようとしましたが、いくつかの誤りがあります。アセンブリコードでベクトルを使用する方法x86とSSE
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_vector'クラスの_vTableレイアウトを知る必要があります。あなたの 'mov eax、[ebx]'はたぶんおそらく 'stl_vector'クラスのデストラクタのアドレスを取得し、目的のデータフィールド(アドレス)は取得しません。このレイアウトは、コンパイラーのバージョン間で変更される可能性があります。 – zx485
配列を取得したら、どのように要素にアクセスできますか?前に書いたように?ありがとうございました! –
はい、もしあなたが 'ebx'にアドレスを持っていれば' [ebx] 'と' [ebx + 4] 'はそれぞれ第1と第2の要素になります。 – Jester