Intel 8086 je 16 bitni procesor kompanije Intel koji izlazi na tržište 1978. godine i potom postaje osnova za IBM kućne kompjutere.

Intel 8086 procesor

Uvod uredi

U drugoj polovici sedamdesetih kada je postalo očito da Zilog i Motorola počinju raditi na svojim prvom 16 bitnim procesorima (konkretno Z8000 i Motorola 68000) Intel donosi odluku da brzo izgradi svoj procesor koji kao moderniju verziju 8 bitnog procesora Intel 8080/8085. Nakon dizajniranja koje će trajati malo duže od 2 godine procesor izlazi na tražište.

Osobine procesora uredi

Pošto je model programiranja i instrukcija imao kao osnovu starije modele on je bio kompaktibilan s Intelovim procesorima 8085, 8080 i 8008. Osnovna unutrašnja razlika među njima je bila da su stariji procesori koristili samo najosnovnije 16 bitne funkcije dok je Intel 8086 imao punu 16 bitnu sposobnost.

Sveukupno procesor je imao 29.000 transistora ako u njih računamo i one od ROMa, a njegova originalna veličina je bila 33 mm2, dok je mogao koristiti najviše 1 megabajt memorije. Maksimalna brzina procesora je bila između 5 i 10 Mhz

IBM uredi

Kraj sedamdesetih godina dvadesetog stoljeća počinje kompjuterska revolucija puštanjem u prodaju kompjutera Commodore PET, Atari 400 i Atari 800, Apple II i Tandy TRS80. Uspjeh tih kompjutera rezultira odlukom elektroničnog diva imena IBM da izgradi svoj kompjuter iz lako dostupnih dijelova. Vršeći izbor između procesora raznih procesora na tržištu IBM se odlučuje za Intel i njegovu osakaćenu verziju procesora 8086 koja ulazi u proizvodnju 1979. godine pod imenom Intel 8088. Ta odluka na kraju rezultira da osnova za poslovne kompjutere postane Intel 8086/8088 procesor od kojeg će se razviti današnji kućni kompjuteri.

Proizvođači uredi

Jedan od osnova poslovne politike kompjuterskih kompanija tijekom sedamdesetih godina je bila da svaki procesor moraju proizvoditi minimalno 2 proizvođača kako se u slučaju propasti jednog proizvodnja ne bi zaustavila. To je bio i zahtjev koji je IBM postavio pred Intel u sklapanju dogovora po kojem procesor te kompanije postaje osnova njihovih kompjutera. Na kraju Intel će dopustiti da procesor 8086 i 8088 proizvode osim njih AMD, NEC, Fujitsu, Harris (Intersil), OKI, Siemens AG, Texas Instruments i Mitsubishi.

Nasljednik ovog procesora će biti Intel 80286.

Popis strojnih naredbi 8086 procesora uredi

Instruction Meaning Notes
AAA ASCII adjust AL after addition used with unpacked binary coded decimal
AAD ASCII adjust AX before division buggy in the original instruction set, but "fixed" in the NEC V20, causing a number of incompatibilites
AAM ASCII adjust AX after multiplication
AAS ASCII adjust AL after subtraction
ADC Add with carry
ADD Add
AND Logical AND
CALL Call procedure
CBW Convert byte to word
CLC Clear carry flag
CLD Clear direction flag
CLI Clear interrupt flag
CMC Complement carry flag
CMP Compare operands
CMPSB Compare bytes in memory
CMPSW Compare words
CWD Convert word to doubleword
DAA Decimal adjust AL after addition (used with packed binary coded decimal)
DAS Decimal adjust AL after subtraction
DEC Decrement by 1
DIV Unsigned divide
ESC Used with floating-point unit
HLT Enter halt state
IDIV Signed divide
IMUL Signed multiply
IN Input from port
INC Increment by 1
INT Call to interrupt
INTO Call to interrupt if overflow
IRET Return from interrupt
Jxx Jump if condition (JA, JAE, JB, JBE, JC, JCXZ, JE, JG, JGE, JL, JLE, JNA, JNAE, JNB, JNBE, JNC, JNE, JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JNZ, JO, JP, JPE, JPO, JS, JZ)
JMP Jump
LAHF Load flags into AH register
LDS Load pointer using DS
LEA Load Effective Address
LES Load ES with pointer
LOCK Assert BUS LOCK# signal (for multiprocessing)
LODSB Load byte
LODSW Load word
LOOP/LOOPx Loop control (LOOPE, LOOPNE, LOOPNZ, LOOPZ)
MOV Move
MOVSB Move byte from string to string
MOVSW Move word from string to string
MUL Unsigned multiply
NEG Two's complement negation
NOP No operation
NOT Negate the operand, logical NOT
OR Logical OR
OUT Output to port
POP Pop data from stack
POPF Pop data into flags register
PUSH Push data onto stack
PUSHF Push flags onto stack
RCL Rotate left (with carry)
RCR Rotate right (with carry)
REPxx Repeat CMPS/MOVS/SCAS/STOS (REP, REPE, REPNE, REPNZ, REPZ)
RET Return from procedure
RETN Return from near procedure
RETF Return from far procedure
ROL Rotate left
ROR Rotate right
SAHF Store AH into flags
SAL Shift Arithmetically left (multiply)
SAR Shift Arithmetically right (signed divide)
SBB Subtraction with borrow
SCASB Compare byte string
SCASW Compare word string
SHL Shift left (multiply)
SHR Shift right (unsigned divide)
STC Set carry flag
STD Set direction flag
STI Set interrupt flag
STOSB Store byte in string
STOSW Store word in string
SUB Subtraction
TEST Logical compare (AND)
WAIT Wait until not busy Waits until BUSY# pin is inactive (used with floating-point unit)
XCHG Exchange data
XLAT Table look-up translation
XOR Exclusive OR