Specifications
MICROPROCESSADORES
CONJUNTO DE INSTRUÇÕES DO 8086
4
Luís Miguel Charrua Figueiredo 4 - 5 E.N.I.D.H.
MOVS - Move String (Byte or Word)
Usage: MOVS dest,src
MOVSB
MOVSW
Modifies flags: None
Copies data from addressed by DS:SI (even if operands
are given) to the location ES:DI destination and updates
SI and DI based on the size of the operand or instruction
used. SI and DI are incremented when the Direction Flag
is cleared and decremented when the Direction Flag is
Set. Use with REP prefixes.
MUL - Unsigned Multiply
Usage: MUL src
Modifies flags: CF OF (AF,PF,SF,ZF undefined)
Unsigned multiply of the accumulator by the source. If
"src" is a byte value, then AL is used as the other
multiplicand and the result is placed in AX. If "src" is a
word value, then AX is multiplied by "src" and DX:AX
receives the result. If "src" is a double word value, then
EAX is multiplied by "src" and EDX:EAX receives the
result. The 386+ uses an early out algorithm which
makes multiplying any size value in EAX as fast as in the
8 or 16 bit registers.
NEG - Two's Complement Negation
Usage: NEG dest
Modifies flags: AF CF OF PF SF ZF
Subtracts the destination from 0 and saves the 2s
complement of "dest" back into "dest".
NOP - No Operation (90h)
Usage: NOP
Modifies flags: None
This is a do nothing instruction. It results in occupation of
both space and time and is most useful for patching code
segments. (This is the original XCHG AL,AL instruction)
NOT - One's Compliment Negation (Logical NOT)
Usage: NOT dest
Modifies flags: None
Inverts the bits of the "dest" operand forming the 1s
complement.
OR - Inclusive Logical OR
Usage: OR dest,src
Modifies flags: CF OF PF SF ZF (AF undefined)
Logical inclusive OR of the two operands returning the
result in the destination. Any bit set in either operand will
be set in the destination.
OUT - Output Data to Port
Usage: OUT port,accum
Modifies flags: None
Transfers byte in AL,word in AX or dword in EAX to the
specified hardware port address. If the port number is in
the range of 0-255 it can be specified as an immediate. If
greater than 255 then the port number must be specified
in DX. Since the PC only decodes 10 bits of the port
address, values over 1023 can only be decoded by third
party vendor equipment and also map to the port range 0-
1023.
POP - Pop Word off Stack
Usage: POP dest
Modifies flags: None
Transfers word at the current stack top (SS:SP) to the
destination then increments SP by two to point to the new
stack top. CS is not a valid destination.
POPF/POPFD - Pop Flags off Stack
Usage: POPF
Modifies flags: all flags
Pops word/doubleword from stack into the Flags Register
and then increments SP by 2 (for POPF) or 4 (for
POPFD).
PUSH - Push Word onto Stack
Usage: PUSH src
Modifies flags: None
Decrements SP by the size of the operand (two or four,
byte values are sign extended) and transfers one word
from source to the stack top (SS:SP).
PUSHF/PUSHFD - Push Flags onto Stack
Usage: PUSHF
Modifies flags: None
Transfers the Flags Register onto the stack. PUSHF
saves a 16 bit value while PUSHFD saves a 32 bit value.
RCL - Rotate Through Carry Left
Usage: RCL dest,count










