如何通过x86程序集访问整数数组中的元素

时间:2014-06-03 21:32:26

标签: c arrays assembly x86

如何通过x86程序集访问整数数组中的元素? 我当前的代码显示了我要做的事情:

int arr[3]{0,6,8};

__asm
{
   mov eax, [arr+1*4] // access value "6" in the array and put it in eax
}

eax显示" 0F5CA9A1"根据需要而不是6

1 个答案:

答案 0 :(得分:0)

以下代码适用于VS 2013:

int array[] = { 10, 20, 30 };
int idx0, idx1, idx2;

__asm {
    mov eax, [array + 0 * 4]
    mov idx0, eax
    mov eax, [array + 1 * 4]
    mov idx1, eax
    mov eax, [array + 2 * 4]
    mov idx2, eax
}

printf("%d %d %d\n", idx0, idx1, idx2);

<强>输出:

10 20 30