[英]Modifying array elements with inline assembly
有没有一种方法可以使用内联汇编修改特定的数组元素?
int move[2];
我想改变move[0]
并在__asm
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.