gpt4 book ai didi

c++ - 使用内联汇编修改数组元素

转载 作者:太空狗 更新时间:2023-10-29 21:22:06 25 4
gpt4 key购买 nike

有没有办法用内联汇编修改特定的数组元素?

int move[2];

我想在 __asm 中更改 move[0]move[1]
我是汇编编码的新手,主要坚持C++,可能有一个很简单的答案。
到目前为止,我已经尝试将 move[1] 移动到寄存器中,将我想要更改的数字移动到另一个,然后将一个移动到另一个。我设法让它编译,但它实际上不起作用。

最佳答案

你可以使用像MOV array[TYPE array * index], value;这样的东西,例如:

#include <stdio.h>

int main(int argc, char **argv) {
int foo[] = {1, 2, 3};

printf("%d\n", foo[0]);
printf("%d\n", foo[1]);
printf("%d\n", foo[2]);

__asm {
MOV foo[TYPE foo * 0], 11;
MOV foo[TYPE foo * 1], 22;
MOV foo[TYPE foo * 2], 33;
};

printf("%d\n", foo[0]);
printf("%d\n", foo[1]);
printf("%d\n", foo[2]);

return 0;
}

TYPE 将返回数组中一个元素的大小。输出:

1
2
3
11
22
33

关于c++ - 使用内联汇编修改数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com