【问题标题】:How to access an element in array of ints via x86 assembly如何通过 x86 程序集访问整数数组中的元素
【发布时间】:2014-06-03 21:32:25
【问题描述】:

如何通过 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

【问题讨论】:

  • 问题是什么?如果它不起作用,您可能需要添加问题所在。
  • 你的编译器是什么?

标签: c arrays assembly x86


【解决方案1】:

以下代码在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    相关资源
    最近更新 更多