8086 INSTRUCTION SET OPCODE AAA AAD AAM AAS ADC ADD AND CA"" C%& C"C CD" C"I CMC CMP CMPS CMPS CMPS% CMPS& C&D DAA DAS DEC DI+ ESC -"T IDI+ IM" IN INC INT INTO IRET .A .AE .% .%E .C . C0 C01 .E .3 . 3E 3E ." ."E .MP
DESCRIPTION ASCII adjust addition ASCII adjust division ASCII adjust multiply ASCII adjust subtraction subtraction dt,sc Add it! carry dt,sc Add dt,sc "o#ical AND proc Call a proc$dur$ Conv$rt byt$ to ord Cl$ar carry 'la# Cl$ar dir$ction 'la# Cl$ar int$rrupt 'la# Compl$m$nt carry 'la# dt,sc Compar$ (dt, (dt,sc sc) ) Comp Compar ar$ $ str strin in# # * * byt$s * * ords Conv$rt ord to doubl$ ord D$cimal adjust addition D$cimal adjust subtraction dt D$cr$m$nt sc nsi#n$d divid$ cod$,sc Escap$ -alt sc Int$#$r divid$ sc Int$#$r multiply ac,port Input 'rom port dt Incr$m$nt typ$ Int$rrupt Int$rrupt i' ov$r'lo R$turn 'rom int$rrupt slab$l .ump i' abov$ slab$l .ump i' i' ab abov$ or or $/ $/ual slab$l .ump i' b$lo slab$l .ump i' i' b$ b$lo or or $/ $/ual slab$l .ump i' carry s la lab $l $l .u mp mp i ' C0 i s 2 $r $ro slab$l .ump i' $/ual slab$l .ump i' #r$at$r s la lab $l $l .u mp mp i ' #r $a $a t$ t$ r or $ /u /u al al slab$l .ump i' l$ss slab$l .ump i' l$ss or $/ual lab$l .ump
. NA .NAE .NAE . N% . N% N% E . NC . NE . N3 .N3E .N3E . N" .N"E .N"E . N1 . NO . NP . NS .O . PO .P . PE .S .1 " A- 4 " DS " EA " ES " OC 5 " OD S "ODS% "ODS& " OO P "OOP "OOPE E " OO OO P1 P1 "OOPNE "OOPNE "OOP "OOPN1 N1 MO+ MO+S MO+S% MO+S& M" NE3 NOP NOT OR O T P OP
slab$l slab slab$l $l slab$l s la la b$ b$ l slab$l slab$l slab$l slab slab$l $l slab$l slab slab$l $l slab$l slab$l slab$l slab$l slab$l slab$l slab$l slab$l slab$l slab$l dt,sc dt,sc dt,sc ( sc ) * * slab$l slab slab$l $l s la la b$ b$ l slab$l slab$l slab slab$l $l dt,sc (dt,sc) * * sc dt
.ump .ump .ump .ump . um um p .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump .ump "oad "oad "oad "oad "oc6 "oad
"oop "oop "oop " oo oo p "oop "oop "oop "oop Mov$ Mov$
i' not abov$ i' not not abo abov$ v$ or $/ua $/ual l i' not b$lo i' b$ b$l o o or or $/ $/ ua ua l i' no carry i' not $/ual i' not #r$at$r i' not not #r$ #r$at at$r $r or $/ua $/ual l i' not l$ss i' not not l$s l$ss s or or $/u $/ual al i' not 2$ro i' not ov$r'lo i' i' no not pa parity i' not si#n i' ov$r'lo i' i' pa parity od odd i' parity i' parity $v$n i' si#n i' 2$ro A- 'rom 'la#s point$r usin# DS $' $''$ctiv$ ad addr$ss point$r usin# ES bus strin# * byt$s * ords i' i' i' i' i' i'
$/ua $/ual l 2$ 2$r o not not $/ual $/ual not not 2$ro 2$ro
strin# * byt$s * ords nsi#n$d multiply N$#at$ No op$ration dt "o#ical NOT dt,sc "o#ical OR port,ac output to to po port dt Pop ord o'' stac6
POP4 PSPS-4 R C" C" R CR CR REP REPE REP1 REPNE REPN1 RET RO" ROR SA-4 SA" S-" S AR AR S%% SCAS SCAS% SCAS& S-R STC STD STI STOS STOS% STOS& S% TEST &AIT 0C-3 0"AT 0"AT% 0OR
Pop 'la#s o'' stac6 Pus! ord onto stac6 Pus! 'la#s onto stac6 d t, t, cn cn t R ot ot at at $ l$ 't 't t !r !r ou ou #! #! c ar ar ry ry d t, t, cn cn t R ot ot at at $ ri #! #! t t !r !ro u# u# ! c ar arr y R$p$at strin# op$ration R$p$at !il$ $/ual R$p$at !il$ 2$ro R$p$at !il$ not $/ual R$p$at !il$ not 2$ro (pop) R$turn 'rom proc$dur$ dt,cnt Rotat$ l$ l$'t dt,cnt Rotat$ ri#!t Stor$ A- into 'la#s dt,cnt S!i't ar arit!m$tic l$ l$'t dt,cnt S!i't lo#ical l$'t d t, t, cn cn t S !i !i 't 't a ri ri t! t! m$ m$ ti ti c r i# i#! t dt,sc Subtract it! borro (dt) Scan strin# * * byt$ * * ord dt,cnt S!i't lo#ical ri#!t S$t carry 'la# S$t dir$ction 'la# S$t int$rrupt 'la# (dt) Stor$ strin# * * byt$ * * ord dt,sc Subtraction dt,sc T$st 7lo#ical AND8 &ait 'or 9:9; dt,sc E
Not$s= dt > d$stination sc ? sourc$ lab$l ? may b$ n$ar or 'ar addr$ss slab$l ? n$ar addr$ss