データ転送命令

 

MOV

Move

CMOVE/CMOVZ

Conditional move if equal/Conditional move if zero

CMOVNE/CMOVNZ

Conditional move if not equal/Conditional move if not zero

CMOVA/CMOVNBE

Conditional move if above/Conditional move if not below or equal

CMOVAE/CMOVNB

Conditional move if above or equal/Conditional move if not below

CMOVB/CMOVNAE

Conditional move if below/Conditional move if not above or equal

CMOVBE/CMOVNA

Conditional move if below or equal/Conditional move if not above

CMOVG/CMOVNLE

Conditional move if greater/Conditional move if not less or equal

CMOVGE/CMOVNL

Conditional move if greater or equal/Conditional move ifnot less

CMOVL/CMOVNGE

Conditional move if less/Conditional move if not greateror equal

CMOVLE/CMOVNG

Conditional move if less or equal/Conditional move ifnot greater

CMOVC

Conditional move if carry

CMOVNC

Conditional move if not carry

CMOVO

Conditional move if overflow

CMOVNO

Conditional move if not overflow

CMOVS

Conditional move if sign (negative)

CMOVNS

Conditional move if not sign (non-negative)

CMOVP/CMOVPE

Conditional move if parity/Conditional move if parity even

CMOVNP/CMOVPO

Conditional move if not parity/Conditional move if parity odd

XCHG

Exchange

BSWAP

Byte swap

XADD

Exchange and add

CMPXCHG

Compare and exchange

CMPXCHG8B

Compare and exchange 8 bytes

PUSH

Push onto stack

POP

Pop off of stack

PUSHA/PUSHAD

Push general-purpose registers onto stack

POPA/POPAD

Pop general-purpose registers from stack

IN

Read from a port

OUT

Write to a port

CWD/CDQ

Convert word to doubleword/Convert doubleword to quadword

CBW/CWDE

Convert byte to word/Convert word to doubleword in EAX register

MOVSX

Move and sign extend

MOVZX

Move and zero extend

2進算術命令

ADD

Integer add

ADC

Add with carry

SUB

Subtract

SBB

Subtract with borrow

IMUL

Signed multiply

MUL

Unsigned multiply

IDIV

Signed divide

DIV

Unsigned divide

INC

Increment

DEC

Decrement

NEG

Negate

CMP

Compare

2進算術命令

DAA

Decimal adjust after addition

DAS

Decimal adjust after subtraction

AAA

ASCII adjust after addition

AAS

ASCII adjust after subtraction

AAM

ASCII adjust after multiplication

AAD

ASCII adjust before division

論理命令

 

AND

And

OR

Or

XOR

Exclusive or

NOT

Not

 

 

シフト命令とローテート命令

SAR

Shift arithmetic right

SHR

Shift logical right

SAL/SHL

Shift arithmetic left/Shift logical left

SHRD

Shift right double

SHLD

Shift left double

ROR

Rotate right

ROL

Rotate left

RCR

Rotate through carry right

RCL

Rotate through carry left

ビット命令とバイト命令

BT

Bit test

BTS

Bit test and set

BTR

Bit test and reset

BTC

Bit test and complement

BSF

Bit scan forward

BSR

Bit scan reverse

SETE/SETZ

Set byte if equal/Set byte if zero

SETNE/SETNZ

Set byte if not equal/Set byte if not zero

SETA/SETNBE

Set byte if above/Set byte if not below or equal

SETAE/SETNB/SETNC

Set byte if above or equal/Set byte if not below/Set byte if not carry

SETB/SETNAE/SETC

Set byte if below/Set byte if not above or equal/Set byte if carry

SETBE/SETNA

Set byte if below or equal/Set byte if not above

SETG/SETNLE

Set byte if greater/Set byte if not less or equal

SETGE/SETNL

Set byte if greater or equal/Set byte if not less

SETL/SETNGE

Set byte if less/Set byte if not greater or equal

SETLE/SETNG

Set byte if less or equal/Set byte if not greater

SETS

Set byte if sign (negative)

SETNS

Set byte if not sign (non-negative)

SETO

Set byte if overflow

SETNO

Set byte if not overflow

SETPE/SETP

Set byte if parity even/Set byte if parity

SETPO/SETNP

Set byte if parity odd/Set byte if not parity

TEST

Logical compare

 

 

制御転送命令

 

JMP

Jump

JE/JZ

Jump if equal/Jump if zero

JNE/JNZ

Jump if not equal/Jump if not zero

JA/JNBE

Jump if above/Jump if not below or equal

JAE/JNB

Jump if above or equal/Jump if not below

JB/JNAE

Jump if below/Jump if not above or equal

JBE/JNA

Jump if below or equal/Jump if not above

JG/JNLE

Jump if greater/Jump if not less or equal

JGE/JNL

Jump if greater or equal/Jump if not less

JL/JNGE

Jump if less/Jump if not greater or equal

JLE/JNG

Jump if less or equal/Jump if not greater

JC

Jump if carry

JNC

Jump if not carry

JO

Jump if overflow

JNO

Jump if not overflow

JS

Jump if sign (negative)

JNS

Jump if not sign (non-negative)

JPO/JNP

Jump if parity odd/Jump if not parity

JPE/JP

Jump if parity even/Jump if parity

JCXZ/JECXZ

Jump register CX zero/Jump register ECX zero

LOOP

Loop with ECX counter

LOOPZ/LOOPE

Loop with ECX and zero/Loop with ECX and equal

LOOPNZ/LOOPNE

Loop with ECX and not zero/Loop with ECX and not equal

CALL

Call procedure

RET

Return

IRET

Return from interrupt

INT

Software interrupt

INTO

Interrupt on overflow

BOUND

Detect value out of range

ENTER

High-level procedure entry

LEAVE

High-level procedure exit

 

 

ストリング命令

 

MOVS/MOVSB

Move string/Move byte string

MOVS/MOVSW

Move string/Move word string

MOVS/MOVSD

Move string/Move doubleword string

CMPS/CMPSB

Compare string/Compare byte string

CMPS/CMPSW

Compare string/Compare word string

CMPS/CMPSD

Compare string/Compare doubleword string

SCAS/SCASB

Scan string/Scan byte string

SCAS/SCASW

Scan string/Scan word string

SCAS/SCASD

Scan string/Scan doubleword string

LODS/LODSB

Load string/Load byte string

LODS/LODSW

Load string/Load word string

LODS/LODSD

Load string/Load doubleword string

STOS/STOSB

Store string/Store byte string

STOS/STOSW

Store string/Store word string

STOS/STOSD

Store string/Store doubleword string

REP

Repeat while ECX not zero

REPE/REPZ

Repeat while equal/Repeat while zero

REPNE/REPNZ

Repeat while not equal/Repeat while not zero

INS/INSB

Input string from port/Input byte string from port

INS/INSW

Input string from port/Input word string from port

INS/INSD

Input string from port/Input doubleword string from port

OUTS/OUTSB

Output string to port/Output byte string to port

OUTS/OUTSW

Output string to port/Output word string to port

OUTS/OUTSD

Output string to port/Output doubleword string to port

フラグ制御命令

 

STC

Set carry flag

CLC

Clear the carry flag

CMC

Complement the carry flag

CLD

Clear the direction flag

STD

Set direction flag

LAHF

Load flags into AH register

SAHF

Store AH register into flags

PUSHF/PUSHFD

Push EFLAGS onto stack

POPF/POPFD

Pop EFLAGS from stack

STI

Set interrupt flag

CLI

Clear the interrupt flag

セグメント・レジスタ命令S

 

LDS

Load far pointer using DS

LES

Load far pointer using ES

LFS

Load far pointer using FS

LGS

Load far pointer using GS

LSS

Load far pointer using SS

その他の命令

 

LEA

Load effective address

NOP

No operation

UB2

Undefined instruction

XLAT/XLATB

Table lookup translation

CPUID

Processor Identification

XLAT/XLATB

Table lookup translation

CPUID

Processor Identification