我尝试在 64 位 Windows 7 下使用 Visual Studio 2010 编译以下代码。
#include "stdafx.h"
#include <iostream>
using namespace std;
int strlen2(char str[] )
{
int x ;
_asm
{
MOV ESI,0;
LA: MOV DL,BYTE PTR str[ESI];
CMP DL,0;
JE EXIT;
INC ESI;
JMP LA;
EXIT: MOV x,ESI;
};
return x;
}
int main()
{
char X[] ="string2222";
cout<<strlen2(X);
system("pause");
return 0;
}
我希望输出是“10Press any key to continue ...”,
但不幸的是,输出是“3Press any key to continue ...” 对于 X[] 的任何值。
你能解释一下错误在哪里吗???