1

このコードブロックから始めます。

mov   eax, 5
mov   DWORD PTR [eax], 123

値123をアドレス5のメモリ位置に移動しようとしていますが、書き込みアクセス違反が発生します。私が推測できる唯一のことは、メモリの場所がすでに予約されているか、使用中であるということです。しかし、私がどのアドレスを使用しても、それは同じことです。同じ場所から読み上げる場合は、次のように言います。

mov   eax, 5
mov   ebx, DWORD PTR [eax]

エラーは発生しません。私は何が欠けていますか?

(それが役立つ場合、私はMASM、Win 7、4 GB RAMでコーディングしています)

4

1 に答える 1

1

プロセスがその特定のアドレス空間を所有していないため、保護違反が発生します。実際、アドレス空間の最初のメガバイトは、どのプロセスでもWindowsによって立ち入り禁止になっています。

于 2013-01-09T16:26:21.703 に答える