米AMDが開発したx86上位互換の64ビット命令セットアーキテクチャ。まずAMDのOpteronで採用された。旧称は「x86-64」だが、後にAMD64 ISAに改名された。
ロングモード環境では、次のような特徴を有する。
具体的には、ロングモードでは標準で32ビットレジスタ参照となり、従来の32ビット動作と互換性がある。
例えば、次の命令を例とする。
16ビットの場合は「66」のプリフィックスを付ける。ここまではIA-32と同様である。
64ビット演算の場合は、REXプリフィックスを付けてビット長を制御する。この点がIA-32との違いである。例えば「48」のプリフィックスを付けると、次のようになる。
この目的のため、1バイト目が40H〜4FHの範囲は、従来のx86命令と互換性がない。
なお、8ビットの場合はIA-32と同様、1バイト目のWフィールドを0にして表現する。
REXプリフィックスのため、0x40〜0x4fから始まる旧来のx86命令(INC reg16、DEC reg16)はロングモードでは使用できず、これはロングモードでは機械語コードが変更されている。
プログラム動作中にロングモードかどうかを確認するには、IA32_EFERレジスタのビット8を参照し(但し特権命令(RING 0)でないと参照できない)、ここが1ならロングモードと判断する。