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[] の任意の値。
エラーがどこにあるのか説明していただけますか???