NASM - The Netwide Assembler

version 3.01

Appendix F: Instruction List

F.1. Introduction

The following sections show the instructions which NASM currently supports. For each instruction, there is a separate entry for each supported addressing mode. The third column shows the processor type in which the instruction was introduced and, when appropriate, one or more usage flags.

F.1.1. Special instructions (pseudo-ops)

DB                                        PSEUDO 
DW                                        PSEUDO 
DD                                        PSEUDO 
DQ                                        PSEUDO 
DT                                        PSEUDO 
DO                                        PSEUDO 
DY                                        PSEUDO 
DZ                                        PSEUDO 
RESB             imm                      PSEUDO 
RESW             imm                      PSEUDO 
RESD             imm                      PSEUDO 
RESQ             imm                      PSEUDO 
REST             imm                      PSEUDO 
RESO             imm                      PSEUDO 
RESY             imm                      PSEUDO 
RESZ             imm                      PSEUDO 
INCBIN                                    PSEUDO 
EQU              imm                      PSEUDO 
EQU              imm:imm                  PSEUDO 
EQU              spec4                    PSEUDO,DFV

F.1.2. No operation

NOP                                       BESTDIS,8086 
NOP2                                      ND,386 
NOP              rm16                     BESTDIS,P6 
NOP              rm32                     BESTDIS,P6 
NOP              rm64                     LONG,BESTDIS,PROT,X86_64

F.1.3. Integer data move instructions

MOV              reg_al,mem_offs          SM0-1,NOAPX,8086 
MOV              reg_ax,mem_offs          SM0-1,NOAPX,8086 
MOV              reg_eax,mem_offs         SM0-1,NOAPX,ZU,386 
MOV              reg_rax,mem_offs         SM0-1,NOAPX,ZU,LONG,PROT,X86_64 
MOV              mem_offs,reg_al          SM0-1,NOAPX,NOHLE,8086 
MOV              mem_offs,reg_ax          SM0-1,NOAPX,NOHLE,8086 
MOV              mem_offs,reg_eax         SM0-1,NOAPX,NOHLE,386 
MOV              mem_offs,reg_rax         SM0-1,NOAPX,LONG,NOHLE,PROT,X86_64 
MOVABS           reg_al,mem_offs          ND,SM0-1,NOAPX,8086 
MOVABS           reg_ax,mem_offs          ND,SM0-1,NOAPX,8086 
MOVABS           reg_eax,mem_offs         ND,SM0-1,NOAPX,ZU,386 
MOVABS           reg_rax,mem_offs         ND,SM0-1,NOAPX,ZU,LONG,PROT,X86_64 
MOVABS           mem_offs,reg_al          ND,SM0-1,NOAPX,NOHLE,8086 
MOVABS           mem_offs,reg_ax          ND,SM0-1,NOAPX,NOHLE,8086 
MOVABS           mem_offs,reg_eax         ND,SM0-1,NOAPX,NOHLE,386 
MOVABS           mem_offs,reg_rax         ND,SM0-1,NOAPX,LONG,NOHLE,PROT,X86_64 
MOV              rm8,reg8                 SM0-1,8086 
MOV              rm16,reg16               SM0-1,8086 
MOV              rm32,reg32               SM0-1,386 
MOV              rm64,reg64               SM0-1,LONG,PROT,X86_64 
MOV              reg8,rm8                 SM0-1,8086 
MOV              reg16,rm16               SM0-1,8086 
MOV              reg32,rm32               SM0-1,386 
MOV              reg64,rm64               SM0-1,LONG,PROT,X86_64 
MOV              reg64,udword64           ND,SM0-1,OPT,LONG,PROT,X86_64 
MOV              reg64,sdword64           ND,SM0-1,SDWORD,OPT,LONG,PROT,X86_64 
MOV              reg8,imm8                SM0-1,8086 
MOV              reg16,imm16              SM0-1,8086 
MOV              reg32,imm32              SM0-1,386 
MOV              reg64,imm64              SM0-1,LONG,PROT,X86_64 
MOV              reg8,imm8|abs            ND,SM0-1,8086 
MOV              reg16,imm16|abs          ND,SM0-1,8086 
MOV              reg32,imm32|abs          ND,SM0-1,386 
MOV              reg64,imm64|abs          ND,SM0-1,LONG,PROT,X86_64 
MOVABS           reg8,imm8                ND,SM0-1,8086 
MOVABS           reg16,imm16              ND,SM0-1,8086 
MOVABS           reg32,imm32              ND,SM0-1,386 
MOVABS           reg64,imm64              ND,SM0-1,LONG,PROT,X86_64 
MOV              rm8,imm8                 SM0-1,8086 
MOV              rm16,imm16               SM0-1,8086 
MOV              rm32,imm32               SM0-1,386 
MOV              rm64,sdword64            SM0-1,LONG,PROT,X86_64 
MOVRS            reg8,mem8                SM0-1 
MOVRS            reg16,mem16              SM0-1 
MOVRS            reg32,mem32              SM0-1 
MOVRS            reg64,mem64              SM0-1,LONG,PROT,X86_64 
MOVRS            reg8,mem8                SM0-1 
MOVRS            reg16,mem16              SM0-1 
MOVRS            reg32,mem32              SM0-1 
MOVRS            reg64,mem64              SM0-1,LONG,PROT,X86_64

F.1.4. Load effective address

LEA              reg16,mem                8086 
LEA              reg32,mem                386 
LEA              reg64,mem                LONG,PROT,X86_64 
LEA              reg16,imm16              ND,8086 
LEA              reg32,imm32              ND,386 
LEA              reg64,sdword64           ND,LONG,PROT,X86_64

F.1.5. The basic 8 arithmetic operations

ADD              rm8,reg8                 SM0-1,LOCK,FL,8086 
ADD              rm16,reg16               SM0-1,LOCK,FL,8086 
ADD              rm32,reg32               SM0-1,LOCK,FL,386 
ADD              rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
ADD              reg8,rm8                 SM0-1,FL,8086 
ADD              reg16,rm16               SM0-1,FL,8086 
ADD              reg32,rm32               SM0-1,FL,386 
ADD              reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
ADD              rm16,sbyteword16         SM0-1,LOCK,FL,8086 
ADD              rm32,sbytedword32        SM0-1,LOCK,FL,386 
ADD              rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
ADD              reg_al,imm8              SM0-1,FL,8086 
ADD              reg_ax,imm16             SM0-1,FL,8086 
ADD              reg_eax,imm32            SM0-1,ZU,FL,386 
ADD              reg_rax,sdword64         SM0-1,ZU,LONG,FL,PROT,X86_64 
ADD              rm8,imm8                 SM0-1,LOCK,FL,8086 
ADD              rm16,imm16               SM0-1,LOCK,FL,8086 
ADD              rm32,imm32               SM0-1,LOCK,FL,386 
ADD              rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64 
ADD              reg8?,reg8,rm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg16?,reg16,rm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg32?,reg32,rm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg64?,reg64,rm64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg8?,rm8,reg8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg16?,rm16,reg16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg32?,rm32,reg32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg64?,rm64,reg64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg16?,rm16,sbyteword16  SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg32?,rm32,sbytedword32 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg64?,rm64,sbytedword64 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg8?,rm8,imm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg16?,rm16,imm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg32?,rm32,imm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADD              reg64?,rm64,sdword64     SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               rm8,reg8                 SM0-1,LOCK,FL,8086 
OR               rm16,reg16               SM0-1,LOCK,FL,8086 
OR               rm32,reg32               SM0-1,LOCK,FL,386 
OR               rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
OR               reg8,rm8                 SM0-1,FL,8086 
OR               reg16,rm16               SM0-1,FL,8086 
OR               reg32,rm32               SM0-1,FL,386 
OR               reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
OR               rm16,sbyteword16         SM0-1,LOCK,FL,8086 
OR               rm32,sbytedword32        SM0-1,LOCK,FL,386 
OR               rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
OR               reg_al,imm8              SM0-1,FL,8086 
OR               reg_ax,imm16             SM0-1,FL,8086 
OR               reg_eax,imm32            SM0-1,ZU,FL,386 
OR               reg_rax,sdword64         SM0-1,ZU,LONG,FL,PROT,X86_64 
OR               rm8,imm8                 SM0-1,LOCK,FL,8086 
OR               rm16,imm16               SM0-1,LOCK,FL,8086 
OR               rm32,imm32               SM0-1,LOCK,FL,386 
OR               rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64 
OR               reg8?,reg8,rm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg16?,reg16,rm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg32?,reg32,rm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg64?,reg64,rm64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg8?,rm8,reg8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg16?,rm16,reg16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg32?,rm32,reg32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg64?,rm64,reg64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg16?,rm16,sbyteword16  SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg32?,rm32,sbytedword32 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg64?,rm64,sbytedword64 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg8?,rm8,imm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg16?,rm16,imm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg32?,rm32,imm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
OR               reg64?,rm64,sdword64     SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              rm8,reg8                 SM0-1,LOCK,FL,8086 
ADC              rm16,reg16               SM0-1,LOCK,FL,8086 
ADC              rm32,reg32               SM0-1,LOCK,FL,386 
ADC              rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
ADC              reg8,rm8                 SM0-1,FL,8086 
ADC              reg16,rm16               SM0-1,FL,8086 
ADC              reg32,rm32               SM0-1,FL,386 
ADC              reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
ADC              rm16,sbyteword16         SM0-1,LOCK,FL,8086 
ADC              rm32,sbytedword32        SM0-1,LOCK,FL,386 
ADC              rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
ADC              reg_al,imm8              SM0-1,FL,8086 
ADC              reg_ax,imm16             SM0-1,FL,8086 
ADC              reg_eax,imm32            SM0-1,ZU,FL,386 
ADC              reg_rax,sdword64         SM0-1,ZU,LONG,FL,PROT,X86_64 
ADC              rm8,imm8                 SM0-1,LOCK,FL,8086 
ADC              rm16,imm16               SM0-1,LOCK,FL,8086 
ADC              rm32,imm32               SM0-1,LOCK,FL,386 
ADC              rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64 
ADC              reg8?,reg8,rm8           SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg16?,reg16,rm16        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg32?,reg32,rm32        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg64?,reg64,rm64        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg8?,rm8,reg8           SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg16?,rm16,reg16        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg32?,rm32,reg32        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg64?,rm64,reg64        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg16?,rm16,sbyteword16  SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg32?,rm32,sbytedword32 SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg64?,rm64,sbytedword64 SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg8?,rm8,imm8           SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg16?,rm16,imm16        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg32?,rm32,imm32        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
ADC              reg64?,rm64,sdword64     SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              rm8,reg8                 SM0-1,LOCK,FL,8086 
SBB              rm16,reg16               SM0-1,LOCK,FL,8086 
SBB              rm32,reg32               SM0-1,LOCK,FL,386 
SBB              rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
SBB              reg8,rm8                 SM0-1,FL,8086 
SBB              reg16,rm16               SM0-1,FL,8086 
SBB              reg32,rm32               SM0-1,FL,386 
SBB              reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
SBB              rm16,sbyteword16         SM0-1,LOCK,FL,8086 
SBB              rm32,sbytedword32        SM0-1,LOCK,FL,386 
SBB              rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
SBB              reg_al,imm8              SM0-1,FL,8086 
SBB              reg_ax,imm16             SM0-1,FL,8086 
SBB              reg_eax,imm32            SM0-1,ZU,FL,386 
SBB              reg_rax,sdword64         SM0-1,ZU,LONG,FL,PROT,X86_64 
SBB              rm8,imm8                 SM0-1,LOCK,FL,8086 
SBB              rm16,imm16               SM0-1,LOCK,FL,8086 
SBB              rm32,imm32               SM0-1,LOCK,FL,386 
SBB              rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64 
SBB              reg8?,reg8,rm8           SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg16?,reg16,rm16        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg32?,reg32,rm32        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg64?,reg64,rm64        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg8?,rm8,reg8           SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg16?,rm16,reg16        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg32?,rm32,reg32        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg64?,rm64,reg64        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg16?,rm16,sbyteword16  SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg32?,rm32,sbytedword32 SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg64?,rm64,sbytedword64 SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg8?,rm8,imm8           SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg16?,rm16,imm16        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg32?,rm32,imm32        SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
SBB              reg64?,rm64,sdword64     SM0-2,LONG,FL,EVEX,PROT,APX,X86_64 
AND              rm8,reg8                 SM0-1,LOCK,FL,8086 
AND              rm16,reg16               SM0-1,LOCK,FL,8086 
AND              rm32,reg32               SM0-1,LOCK,FL,386 
AND              rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
AND              reg8,rm8                 SM0-1,FL,8086 
AND              reg16,rm16               SM0-1,FL,8086 
AND              reg32,rm32               SM0-1,FL,386 
AND              reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
AND              rm16,sbyteword16         SM0-1,LOCK,FL,8086 
AND              rm32,sbytedword32        SM0-1,LOCK,FL,386 
AND              rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
AND              reg_al,imm8              SM0-1,FL,8086 
AND              reg_ax,imm16             SM0-1,FL,8086 
AND              reg_eax,imm32            SM0-1,ZU,FL,386 
AND              reg_rax,sdword64         SM0-1,ZU,LONG,FL,PROT,X86_64 
AND              rm8,imm8                 SM0-1,LOCK,FL,8086 
AND              rm16,imm16               SM0-1,LOCK,FL,8086 
AND              rm32,imm32               SM0-1,LOCK,FL,386 
AND              rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64 
AND              reg8?,reg8,rm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg16?,reg16,rm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg32?,reg32,rm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg64?,reg64,rm64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg8?,rm8,reg8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg16?,rm16,reg16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg32?,rm32,reg32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg64?,rm64,reg64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg16?,rm16,sbyteword16  SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg32?,rm32,sbytedword32 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg64?,rm64,sbytedword64 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg8?,rm8,imm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg16?,rm16,imm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg32?,rm32,imm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
AND              reg64?,rm64,sdword64     SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              rm8,reg8                 SM0-1,LOCK,FL,8086 
SUB              rm16,reg16               SM0-1,LOCK,FL,8086 
SUB              rm32,reg32               SM0-1,LOCK,FL,386 
SUB              rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
SUB              reg8,rm8                 SM0-1,FL,8086 
SUB              reg16,rm16               SM0-1,FL,8086 
SUB              reg32,rm32               SM0-1,FL,386 
SUB              reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
SUB              rm16,sbyteword16         SM0-1,LOCK,FL,8086 
SUB              rm32,sbytedword32        SM0-1,LOCK,FL,386 
SUB              rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
SUB              reg_al,imm8              SM0-1,FL,8086 
SUB              reg_ax,imm16             SM0-1,FL,8086 
SUB              reg_eax,imm32            SM0-1,ZU,FL,386 
SUB              reg_rax,sdword64         SM0-1,ZU,LONG,FL,PROT,X86_64 
SUB              rm8,imm8                 SM0-1,LOCK,FL,8086 
SUB              rm16,imm16               SM0-1,LOCK,FL,8086 
SUB              rm32,imm32               SM0-1,LOCK,FL,386 
SUB              rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64 
SUB              reg8?,reg8,rm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg16?,reg16,rm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg32?,reg32,rm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg64?,reg64,rm64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg8?,rm8,reg8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg16?,rm16,reg16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg32?,rm32,reg32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg64?,rm64,reg64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg16?,rm16,sbyteword16  SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg32?,rm32,sbytedword32 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg64?,rm64,sbytedword64 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg8?,rm8,imm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg16?,rm16,imm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg32?,rm32,imm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
SUB              reg64?,rm64,sdword64     SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              rm8,reg8                 SM0-1,LOCK,FL,8086 
XOR              rm16,reg16               SM0-1,LOCK,FL,8086 
XOR              rm32,reg32               SM0-1,LOCK,FL,386 
XOR              rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
XOR              reg8,rm8                 SM0-1,FL,8086 
XOR              reg16,rm16               SM0-1,FL,8086 
XOR              reg32,rm32               SM0-1,FL,386 
XOR              reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
XOR              rm16,sbyteword16         SM0-1,LOCK,FL,8086 
XOR              rm32,sbytedword32        SM0-1,LOCK,FL,386 
XOR              rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
XOR              reg_al,imm8              SM0-1,FL,8086 
XOR              reg_ax,imm16             SM0-1,FL,8086 
XOR              reg_eax,imm32            SM0-1,ZU,FL,386 
XOR              reg_rax,sdword64         SM0-1,ZU,LONG,FL,PROT,X86_64 
XOR              rm8,imm8                 SM0-1,LOCK,FL,8086 
XOR              rm16,imm16               SM0-1,LOCK,FL,8086 
XOR              rm32,imm32               SM0-1,LOCK,FL,386 
XOR              rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64 
XOR              reg8?,reg8,rm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg16?,reg16,rm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg32?,reg32,rm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg64?,reg64,rm64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg8?,rm8,reg8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg16?,rm16,reg16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg32?,rm32,reg32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg64?,rm64,reg64        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg16?,rm16,sbyteword16  SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg32?,rm32,sbytedword32 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg64?,rm64,sbytedword64 SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg8?,rm8,imm8           SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg16?,rm16,imm16        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg32?,rm32,imm32        SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
XOR              reg64?,rm64,sdword64     SM0-2,NF,LONG,FL,EVEX,PROT,APX,X86_64 
CMP              rm8,reg8                 SM0-1,LOCK,FL,8086 
CMP              rm16,reg16               SM0-1,LOCK,FL,8086 
CMP              rm32,reg32               SM0-1,LOCK,FL,386 
CMP              rm64,reg64               SM0-1,LOCK,LONG,FL,PROT,X86_64 
CMP              reg8,rm8                 SM0-1,FL,8086 
CMP              reg16,rm16               SM0-1,FL,8086 
CMP              reg32,rm32               SM0-1,FL,386 
CMP              reg64,rm64               SM0-1,LONG,FL,PROT,X86_64 
CMP              rm16,sbyteword16         SM0-1,LOCK,FL,8086 
CMP              rm32,sbytedword32        SM0-1,LOCK,FL,386 
CMP              rm64,sbytedword64        SM0-1,LOCK,LONG,FL,PROT,X86_64 
CMP              reg_al,imm8              SM0-1,FL,8086 
CMP              reg_ax,imm16             SM0-1,FL,8086 
CMP              reg_eax,imm32            SM0-1,FL,386 
CMP              reg_rax,sdword64         SM0-1,LONG,FL,PROT,X86_64 
CMP              rm8,imm8                 SM0-1,LOCK,FL,8086 
CMP              rm16,imm16               SM0-1,LOCK,FL,8086 
CMP              rm32,imm32               SM0-1,LOCK,FL,386 
CMP              rm64,sdword64            SM0-1,LOCK,LONG,FL,PROT,X86_64

F.1.6. Bitwise testing

TEST             rm8,reg8                 SM0-1,FL,8086 
TEST             rm16,reg16               SM0-1,FL,8086 
TEST             rm32,reg32               SM0-1,FL,386 
TEST             rm64,reg64               SM0-1,LONG,FL,PROT,X86_64 
TEST             reg8,mem8                ND,SM0-1,FL,8086 
TEST             reg16,mem16              ND,SM0-1,FL,8086 
TEST             reg32,mem32              ND,SM0-1,FL,386 
TEST             reg64,mem64              ND,SM0-1,LONG,FL,PROT,X86_64 
TEST             reg_al,imm8              SM0-1,NOAPX,FL,8086 
TEST             reg_ax,imm16             SM0-1,NOAPX,FL,8086 
TEST             reg_eax,imm32            SM0-1,NOAPX,FL,386 
TEST             reg_rax,sdword64         SM0-1,NOAPX,LONG,FL,PROT,X86_64 
TEST             rm8,imm8                 SM0-1,FL,8086 
TEST             rm16,imm16               SM0-1,FL,8086 
TEST             rm32,imm32               SM0-1,FL,386 
TEST             rm64,sdword64            SM0-1,LONG,FL,PROT,X86_64

F.1.7. The basic shift an