Specifications
MICROPROCESSADORES
CONJUNTO DE INSTRUÇÕES DO 8086
4
Luís Miguel Charrua Figueiredo 4 - 3 E.N.I.D.H.
Signed multiplication of accumulator by "src" with result
placed in the accumulator. If the source operand is a byte
value, it is multiplied by AL and the result stored in AX. If
the source operand is a word value it is multiplied by AX
and the result is stored in DX:AX. Other variations of this
instruction allow specification of source and destination
registers as well as a third immediate factor.
IN - Input Byte or Word From Port
Usage: IN accum,port
Modifies flags: None
A byte, word or dword is read from "port" and placed in
AL, AX or EAX respectively. If the port number is in the
range of 0-255 it can be specified as an immediate,
otherwise the port number must be specified in DX. Valid
port ranges on the PC are 0-1024, though values through
65535 may be specified and recognized by third party
vendors and PS/2's.
INC - Increment
Usage: INC dest
Modifies flags: AF OF PF SF ZF
Adds one to destination unsigned binary operand.
INT - Interrupt
Usage: INT num
Modifies flags: TF IF
Initiates a software interrupt by pushing the flags, clearing
the Trap and Interrupt Flags, pushing CS followed by IP
and loading CS:IP with the value found in the interrupt
vector table. Execution then begins at the location
addressed by the new CS:IP
INTO - Interrupt on Overflow
Usage: INTO
Modifies flags: IF TF
If the Overflow Flag is set this instruction generates an
INT 4 which causes the code addressed by 0000:0010 to
be executed.
IRET - Interrupt Return
Usage: IRET
Modifies flags: AF CF DF IF PF SF TF ZF
Returns control to point of interruption by popping IP, CS
and then the Flags from the stack and continues
execution at this location. CPU exception interrupts will
return to the instruction that cause the exception because
the CS:IP placed on the stack during the interrupt is the
address of the offending instruction.
Jxx - Jump Instructions Table
Mnemoni
c
Meaning Jump Condition
JA Jump if Above CF=0 and ZF=0
JAE Jump if Above or Equal CF=0
JB Jump if Below CF=1
JBE Jump if Below or Equal CF=1 or ZF=1
JC Jump if Carry CF=1
JCXZ Jump if CX Zero CX=0
JE Jump if Equal ZF=1
JG Jump if Greater (signed) ZF=0 and SF=OF
JGE Jump if Greatur or Equal (signed) SF=OF
JL Jump if Less (signed) SF != OF
JLE Jump if Less or Equal (signed) ZF=1 or SF != O
F
JMP Unconditional Jump unconditional
JNA Jump if Not Above CF=1 or ZF=1
JNAE Jump if Not Above or Equal CF=1
JNB Jump if Not Below CF=0
JNBE Jump if Not Below or Equal CF=0 and ZF=0
JNC Jump if Not Carry CF=0
JNE Jump if Not Equal ZF=0
JNG Jmp if Not Greater (signed) ZF=1 or SF != O
F
JNGE Jump if Not Greater or Equal (signed) SF != OF
JNL Jump if Not Less (signed) SF=OF
JNLE Jump if Not Less or Equal (signed) ZF=0 and SF=OF
JNO Jump if Not Overflow (signed) OF=0
JNP Jump if No Parity PF=0
JNS Jump if Not Signed (signed) SF=0
JNZ Jump if Not Zero ZF=0
JO Jump if Overflow (signed) OF=1
JP Jump if Parity PF=1
JPE Jump if Parity Even PF=1
JPO Jump if Parity Odd PF=0
JS Jump if Signed (signed) SF=1
JZ Jump if Zero ZF=1
Tabela 11 - Lista e condições das intruções de salto.
JCXZ - Jump if Register (E)CX is Zero
Usage: JCXZ label
Modifies flags: None
Causes execution to branch to "label" if register CX is
zero. Uses unsigned comparision.
JMP - Unconditional Jump
Usage: JMP target
Modifies flags: None
Unconditionally transfers control to "label". Jumps by
default are within -32768 to 32767 bytes from the
instruction following the jump. NEAR and SHORT jumps
cause the IP to be updated while FAR jumps cause CS
and IP to be updated.
LAHF - Load Register AH From Flags










