我有问题。我在函数中发送一个指针,首先将数组的最后 3 个元素替换为 3。我应该使用 unsigned char 数组发送,它应该与 ASM 一起使用。
int main(int argc, char* argv[])
{
unsigned char arr[24]={
1,2,3,4,5,6,
7,8,9,10,11,12,
13,14,15,16,17,18,
19,20,21,22,23,24
};// example
AsmFlipVertical(arr);
};
void AsmFlipVertical(unsigned char *arr)
{
_asm
{
les esi,arr ; esi=adress of first elem
mov eax,esi
add eax,21
mov edi,eax ; edi=adress of first elem+21;edi is a adress of 21th elem of array
cld
mov ecx,3
rep movsb
}
}
从 esi 到 edi 的 movsb 我在“rep movsb”中有错误 怎么了?如果在主函数中使用这个 ASM 代码没关系,但我必须在函数中使用 ASM 代码...