続々々 No-Execute bit

各エントリの最上位にある NX ビットが実行不許可フラグで、このビットが立っているページから命令を取得しようとするとページフォルトが発生する。
NX ビットを有効にする為には、PAE = 1 (64bit エントリが必要だから) かつ EFER(Extended Feature Enable Register) の NXE bit を 1 にしなければいけない、と。EFER.NXE = 0 の時に NX ビットが立っているページにアクセスするとページフォルトが発生する。
上位エントリの NX ビットは下位へ継承されるので、PML4E の NX ビットが 1 の場合には該当 PML4E 配下に登録されているページ全てで実行が不可になる、んだよね。