Legend

@ - address
reg,reg1... - registers.
memory@ - may be a literal address or a label

Commands

Data Transfer

mov - Move - move data between register and memory or register.
mov reg1,reg2 - move (copy) data from reg2 to reg1
mov reg1,memory@ - move (copy) data from memory@ to reg1

xchg - Xchange - swap data between register and memory or register
xlat -

PUSH - place data on the stack from register and adjust stack pointer
POP - retrieve data from stack into register and adjust pointer


LEA - Load Effective Address. Loads the register with the address of the memory location or label

LEA ax,memory@

LDS - Load Data Segment - loads DS wiht the segment@ of the source operand and loads the destination operand with the offset of the source operand.

LDS SI,Source_Buffer - Load DS with segment address of Source_Buffer and load SI with the offset address of Source_Buffer

LES - Load ES (extra segment) Register - loads ES wiht the segment@ of the source operand and loads the destination operand with the offset of the source operand.

LES DI,Source_Buffer - Load ES with segment address of Source_Buffer and load DI with the offset address of Source_Buffer

LAHF - Load AH wit Flags - hcopy the low-order byte of the flag register to the upper half of the AX register. So bit 7 of AH = SF flag, 6 = ZF, 4 = AF, 2 = PF, and 1 = CF. sahf

PUSHF - Push Flags - place a copy of the flag register on the stack and increment SP

POPF - Pop Flags - copy the top two bytes of the stack to the flag register and decrement the SP

Arithmetic

ADD - Add two binary values - add may be 8 bit or 16 bit based on operands. operand1 = operand1 + operand2. Various flags will be affected

ADD AX,BX - Add the contents of bx to ax.

ADD AX,VALUE - Add contents of memory to ax.

ADD VALUE,CX - Add the contents of register CX to memory VALUE

ADC - Add two binary values with a carry - add may be 8 bit or 16 bit based on operands. operand1 = operand1 + operand2 + 1 (if carry flag is set ). Various flags will be affected

ADD AX,BX - Add the contents of bx and carry flag to ax.

ADD AX,VALUE - Add contents of memory and carry flag to ax.

ADD VALUE,CX - Add the contents of register CX and carry flag to memory VALUE

INC - increment the specified operand by one. Operand may be a full register, a half register, or a memory location

INC AX

INC AL

INC VALUE

daa

aaa

aas

sub - subtract

sbb

dec

neg

cmp

das

mul

imul

aam

div

idiv

aad

cbw

cwd

Bit Manipulation

not

and

test

or

xor

sal/sh

shr

sar

rol

ror

rcl

rcr

String

movs

movsb/movsw

cmps

scas

lods

stos

rep/repe/repz

repne/repnz

Transfer

call

ret

jmp

loop

loope/loopz

loopne/loopnz

int

into

iret

jl/jnge

jle/jng

jnl/jge

jg/jnle

jb/jnae/jc

jnb/jae/jnc

jbe/jae

jnbe/ja

jne/jnz

jcxz

ip

jnp

jo

jno js

jns

Processor control

stc

clc

cmc

std

cld

sti

cli

wait

esc

nop - no operation