現在、x86 アセンブラを使用してコードを高速化するさまざまな方法をテストしています。以前は 1D 配列にアクセスできましたが、2D 配列はまったく違うようです。
アセンブリで作成した 2 つの for ループを使用し、'x' を ECX レジスタに移動し、'y' を EDX レジスタに移動しました。
また、これを使用して、配列の実効アドレスを EBX にロードしました。
lea ebx,dword ptr [slimeTrail]
今私がやりたいことは、ループを使用して文字を分離し、次を使用して AL レジスタに移動することです。
movsx al,byte ptr [ebx + (ecx * sizeX) + edx]
sizeX は幅です。
しかし、私が得ているエラーは
error C2404: 'edx' : illegal register in 'second operand'
と
error C2425: '*' : non-constant expression in 'second operand'
Intel のマニュアルを確認しましたが、そこに到達していないようです。基本的なことを見逃していませんか?