UMBC CMSC 211

UMBC | CSEE


 

  TD WIDTH="3%" VALIGN="TOP"> H="3%" VALIGN="TOP"> 

Instruction

Format

Description

O

D

I

S

Z

A

P

C

AAA

AAA

Adjust alter addition

?

   

?

?

*

P

*

AAD

AAD

ASCII adjust before division

?

   

*

*

?

*

?

AAM

AAM

ASCII adjust after multiply

?

   

*

*

?

*

?

AAS

AAS

ASCII adjust after subtraction

?

   

?

?

*

?

*

ADC

ADC reg, reg

ADC mem, reg

ADC reg, mem

ADC reg, immed

ADC accum, immed

Add with carry

*

   

*

*

*

*

*

ADD

ADC reg, reg

ADC mem, reg

ADC reg, mem

ADC reg, immed

ADC accum, immed

Add

*

   

*

*

*

*

*

AND

ADC reg, reg

ADC mem, reg

ADC reg, mem

ADC mem, reg

ADC reg, mem

ADC reg, immed

ADC accum, immed

Logical AND

*

   

*

*

?

*

0

CALL

CALL nearlabel

CALL farlabel

CALL reg

CALL mem16

CALL mem32

Call a procedure

               

CBW

Convert byte to word

               

CLC

CLC

Clear carry flag

             

0

CLD

CLD

Clear direction flag

 

0

           

CLI

CLI

Clear interrupt flag

   

0

         

CMC

CMC

Complement carry flag

             

*

CMP

CMP

C

               

CMP

CMP reg, reg

CMP mem, reg

CMP reg, mem

CMP reg, immed

CMP mem, immed

CMP accum, immed

Compare

*

   

*

*

*

*

*

*

CMPS

CMPS source, dest

CMPS segreg:source, ES:dest

Compare strings

*

   

*

*

*

*

*

CMPSB

CMPSB

Compare strings

*

   

*

*

*

*

*

*

CMPSW

CMPSW

Compare strings

*

   

*

*

*

*

*

CWD

CWD

Convert word to doubleword

               

DAA

DAA

Decimal after addition

?

*

*

*

*

*

DAS

DAS

Decimal adjust after subtraction

?

*

*

*

*

*

DEC

Decrement

 

*

*

*

*

*

*

DIV

DIV reg

DIV mem

Unsigned integer divide

?

   

?

?

?

?

?

ESC

ESC immed, reg

ESC immed, mem

Escape

               

HLT

HLT

Halt

               

IDIV

IDIV reg

IDIV mem

TD WIDTH="32%" VALIGN="TOP">

Signed integer division

?

   

?

?

?

?

?

IMUL

IMUL reg

IMUL mem

Signed integer multiply

*

   

?

?

?

?

*

IN

IN accum, immed

IN accum, DX

Input from port

               

INC

INC reg

INC mem

Increment

*

   

*

*

*

*

 

INT

INT immed

INT 3

Interrupt

   

O

    ">       

INTO

INTO

Interrupt on overflow

   

*

*

       

IRET

IRET

Interrupt return

*

*

*

*

*

*

*

*

<

JA

JA shortlabel

Jump if above

               

JAE

JAE shortlabel

Jump if above or equal

               

JB

JB shortlabel

Jump if below

                 

JBE

JBE shortlabel

Jump if below or equal

               

JC

JC shortlabel

Jump if carry

               

JE

JAE shortlabel

Jump if equal

               

JG

JG shortlabel

Jump if greater

               

JGE

JGE shortlabel

Jump if greater or equal

               

JL

JL shortlabel

Jump if less

               

JLE

JLE shortlabel

Jump if less or equal

                 

JNA

JNA shortlabel

Jump if not above

               

JNAE

JNAE shortlabel

Jump if not above or equal

               

JNB

JNB shorVALIGN="TOP">

JNB shortlabel

Jump if not below

               

JNBE

JNBE shortlabel

Jump if not below or equal

               

JNC

JNC shortlabel

Jump if not carry

                 

JNE

JNE shortlabel

Jump if not equal

               

JNG

JNG shortlabel

Jump if not greater

               

JNGE

JNGE shortlabel

Jump if not greater or equal

Jump if not greater or equal

               

JNL

JNL shortlabel

Jump if not less

               

JNLTOP">

JNLE

JNLE shortlabel

Jump if not less or equal

               

JNO

JNO shortlabel

Jump if not overflow

               

JNP

JNP shortlabel

Jump if not parity

      &nbs/TD>          

JNS

JNS shortlabel

Jump if not sign

               

JNZ

JNZ shortlabel

Jump if not zero

               

JO

JO shortlabel

Jump if overflow

               

JP

JP shortlabel

Jump if parity

               

JPE

JPE shortlabel

Jump if parity even

             TD>    

JPO

JPO shortlabel

Jump if parity odd

               

JS

JS shortlabel

Jump if sign

               

JZ

JZ shortlabel

Jump if zero

  &nbp;              

JCXZ

JCXZ shortlabel

Jump if CX is zero

               

JMP

JMP shortlabel

JMP nearlabel

JMP farlabel

JMP reg16

JMP mem16

JMP mem32

Jump unconditionally to label

                 

LAHF

LAHF

Load flags into AH

               

LDS

LDS reg, mem32

Load register and DS

               

LEA

LEA reg, mem

Load effective address

               

LES

LES reg, mem32

Load register and ES

               

LOCK

LOCK instruction

LOCK instruction

Lock the system bus

               

LODS

LODS mem

LODS segreg:mem

Load string

               

LODSB

LODSB

Load string

               

LODSW

LODSW

Load string

               

LOOP

LOOP shortlabel

Loop

               

LOOPE

LOOPE shortlabel

Loop if equal

                 

LOOPZ

LOOPZ shortlabel

Loop if zero

               

LOOPNE

LOOPNE shortlabel

Loop if not equal

               

LOOPNZ

LOOPNZ shortlabel

Loop if not zero

               

MOV

MOV reg, reg

MOV mem, reg

MOV reg, mem

MOV reg16, segreg

MOV segreg, reg16

Copies a byte or word

               

MOVS

MOVS dest, source

MOVS ES:dest, segreg:source

Move string

               

MOVSB

MOVSB

Move string

               

MOVSW

WIDTH="30%" VALIGN="TOP">

MOVSW

Move string

               

MUL

MUL reg

MUL mem

Unsigned integer multiply

*

   

?

?

?

?

*

NEG

NEG reg

NEG mem

Negate

*

&nbFONT>    

*

*

*

*

*

NOP

NOP

No operation

               

NOT

NOT reg

NOT mem

Logical NOT

               ;  

OR

OR reg, reg

OR mem, reg

OR reg, mem

OR reg, immed

OR mem, immed

OR accum, immed

Logical OR

0

   

*

*

?

*

0

OUT

OUT immed8, accum

OUT DX, accum

Output to port

               

POP

POP

POP reg16

POP mem16

POP segreg

Pop from stack

               

PUSH

PUSH reg16

PUSH mem16

PUSH segreg

Push on stack

               

PUSHF

PUSHF

Push flags

                 

RCL

RCL reg, 1

RCL reg, CL

RCL mem, 1

RCL mem, CL

Rotate carry left

*

           

*

RCR

RCR reg, 1

RCR reg, CL

RCR mem, 1

RCR mem, CL

Rotate carry right

*

            "> 

*

REP

REP MOVS dest, source

Repeat string

               

REPZ

REPZ SCAS dest

REPZ SCASB

Conditional repeat string

       

*

     

REPE

REPE SCASW

Conditional repeat string

       

*

     

REPNZ

REPNZ SCAS dest

REPNZ SCASW

Conditional repeat string

       

*

     
 

REPNE

REPNE SCASB

Conditional repeat string

       

*

     

RET

RET

RET immed8

Return from procedure

               

RETN

RETN

RETN immed8

Return from near procedure

                 

RETF

RETF

RETF immed8

Return from far procedure

               

ROL

ROL reg, 1

ROL reg, CL

ROL mem, 1

ROL mem, CL

Rotate right

*

             

*

ROR

ROR reg, 1

ROR reg, CL

ROR mem, 1

ROR mem, CL

Rotate right

*

           

*

SAHF

SAHF

Store AH into flags

     

*

*

*

*

*

SAL

SAL reg, 1

SAL reg, CL

SAL mem, 1

SAL mem, CL

Shift arithmetic left

*

   

*

*

?

*

*

SAR

SAR reg, 1

SAR reg, CL

SAR mem, 1

SAR mem, CL

Shift arithmetic right

*

   

*

*

?

*

*

SBB

SBB

SBB reg, reg

SBB mem, reg

SBB reg, mem

SBB reg, immed

SBB mem, immed

SBB accum, immed

Subtract with borrow

*

   

*

*

*

*

*

SCAS

SCAS dest

SCAS ES:dest

Scan string

*

   

*

*

*

*

*

SCASB

SCASB

Scan string

*

   

*

*

*

*

*

SCASW

SCASW

Scan string

*

     

*

*

*

*

*

SHL

SHL reg, 1

SHL reg, CL

SHL mem, 1

SHL mem, CL

Shift left

*

   

*

*

?

*

*

SHR

SHR reg, 1

SHR reg, CL

SHR mem, 1

SHR mem, CL

Shift right

*

     

*

*

?

*

*

STC

STC

Set carry flag

             

1

STD

STD

Set direction flag

 

1

           

STI

STI

Set interrupt flag

   

1

         

STOS

STOS mem

STOS ES:mem

Store string

               

STOSB

STOSW

Store string

    &bsp;            

STOSB

STOSW

Store string

               

SUB

SUB reg, reg

SUB mem, reg

SUB reg, mem

SUB reg, immed

SUB mem, immed

SUB accum, immed

Subtract

*

   

*

*

*

*

*

TEST

TEST reg, reg

TEST mem, reg

TEST reg, mem

TEST reg, immed

TEST mem, immed

TEST accum, immed

Test individual bits

0

   

*

*

?

*

0

WAIT

WAIT

WAIT

Wait for coprocessor

               

XCHG

XCHG reg, reg

XCHG mem, reg

XCHG reg, mem

Exchange

               

XLAT

XLAT

XLAT mem

XLAT segreg:mem

Translate byte

                 

XOR

XOR reg, reg

XOR mem, reg

XOR reg, mem

XOR reg, immed

XOR mem, immed

XOR accum, immed

Exclusive OR

0

   

*

*

?

*

0



 

UMBC | CSEE