harold が言うように、デフォルトのオペランド サイズは命令にエンコードされていませんが、現在のプロセッサ モードに依存します。
リアル モードと 16 ビット プロテクト モードでは、デフォルトのオペランド サイズは 16 ビットなので83 E4 F0、and $-16, %sp.
32 ビット モードでは、オペランド サイズのデフォルトは 32 ビットなので、and $-16, %esp.
x64 モードでは、ほとんどの命令が再びデフォルトで 32 ビットのオペランド サイズに設定されるため (分岐、およびスタックを間接的に使用するプッシュ、ポップ、呼び出し、リターンなどを除く)、再び にデコードされand $-16, %espます。
プレフィックスを使用して、デフォルトのオペランド サイズをオーバーライドすることができます。たとえば、プレフィックス 66h は 32 ビットと 16 ビットのオペランド サイズを切り替えるため、16 ビット モードで66 83 E4 F0は にデコードし、32 ビットまたは 64 ビット モードでは にデコードします。64 ビットのオペランド サイズを取得するには、W ビットが設定されたREX プレフィックスを使用する必要があるため、デコードされます (ただし、64 ビット モードでのみ!)。and $-16, %espand $-16, %sp48 83 E4 F0and $-16, %rsp