アドレスを指すのに問題があり、私の場合、サイズがバイトの変数を書きます。これにより、「エラー:有効なアドレスが無効です」というエラーが表示されます。
mov byte[AX], byte 0x0
いくつかの試行錯誤の後、EAXを使用して同じことをテストしました。これはうまくコンパイルされます:
mov byte[EAX], byte 0x0
ここで何が欠けていますか?
アドレスを指すのに問題があり、私の場合、サイズがバイトの変数を書きます。これにより、「エラー:有効なアドレスが無効です」というエラーが表示されます。
mov byte[AX], byte 0x0
いくつかの試行錯誤の後、EAXを使用して同じことをテストしました。これはうまくコンパイルされます:
mov byte[EAX], byte 0x0
ここで何が欠けていますか?
[AX]
無効なメモリ オペランド指定です。
有効な 16 ビットのものは次のとおりです。
[constant]
[BX]
[SI]
[DI]
[BX+constant]
[BP+constant]
[SI+constant]
[DI+constant]
[BX+SI]
[BX+DI]
[BP+SI]
[BP+DI]
[BX+SI+constant]
[BX+DI+constant]
[BP+SI+constant]
[BP+DI+constant]
[BP] は正式には無効ですが、多くのアセンブラーは静かに [BP+0] に変換します。
メモリ オペランドのエンコーディングと ModR/M および SIB バイトについては、CPU のマニュアルを参照してください。