Как обратиться к элементу вектора в ассемблерной вставке?
Как обратиться к элементу вектора в ассемблерной вставке c++ (vs2012)?
int m = 1000;
std::vector<int> v(m + 1, 1);
__asm
{
???
}
Источник: Stack Overflow на русском
Как обратиться к элементу вектора в ассемблерной вставке c++ (vs2012)?
int m = 1000;
std::vector<int> v(m + 1, 1);
__asm
{
???
}
В с++ коде получить указатель на первый элемент вектора
void * firstItem = &v[0];
Дальше в ассемблере типа
mov eax, firstItem
add eax, позиция в векторе * 4
mov eax, DWORD PTR [eax] - получить в eax значение
или
mov DWORD PTR [eax], 10 - записать значение в вектор