我遇到了問題。我發送一個函數指針,將3個最後一個數組的元素替換爲3。我應該使用unsigned char數組發送,它應該與ASM一起使用。數組到C++函數(使用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
}
}
MOVSB從ESI到EDI Ive得到了在 「代表MOVSB」 錯誤怎麼回事?如果在主函數中使用這個ASM代碼沒關係,但我必須在函數中使用ASM代碼...
你會得到什麼錯誤信息? – Linuxios