Prijeđi na sadržaj

Intel 8086

Izvor: Wikipedija
Intel 8086 procesor

Intel 8086 ime je za 16-bitni mikroprocesor kojeg je razvila američka tvrtka Intel 1976. godine, ovaj mikroprocesor je temelj standarnom industrijskom mikroprocesoru x86. Slabija inačica Intel 8088 s 8-bitnom vanjskom podatkovnom sabirnicom korišten je za prvo IBM PC računalo. Razlog zašto je 8088 korišten za prvi PC bili su jeftiniji i dostupniji 8-bitni memorijski čipovi.

Tehnički podaci

[uredi | uredi kôd]
  • Takt: 4,77 do 10 MHZ
  • Broj tranzistora: 29.000
  • Tehnologija: NMOS, CMOS, HMOS
  • Kućište: DIP 40 iglica
  • Adresna sabirnica: 20-bita (1MB)
  • Podatkovna sabirnica: 16-bita
  • Broj naredbi: 117

Popis strojnih naredbi 8086 procesora

[uredi | uredi kôd]
InstructionMeaningNotes
AAAASCII adjust AL after additionused with unpacked binary coded decimal
AADASCII adjust AX before divisionbuggy in the original instruction set, but "fixed" in the NEC V20, causing a number of incompatibilites
AAMASCII adjust AX after multiplication
AASASCII adjust AL after subtraction
ADCAdd with carry
ADDAdd
ANDLogical AND
CALLCall procedure
CBWConvert byte to word
CLCClear carry flag
CLDClear direction flag
CLIClear interrupt flag
CMCComplement carry flag
CMPCompare operands
CMPSBCompare bytes in memory
CMPSWCompare words
CWDConvert word to doubleword
DAADecimal adjust AL after addition(used with packed binary coded decimal)
DASDecimal adjust AL after subtraction
DECDecrement by 1
DIVUnsigned divide
ESCUsed with floating-point unit
HLTEnter halt state
IDIVSigned divide
IMULSigned multiply
INInput from port
INCIncrement by 1
INTCall to interrupt
INTOCall to interrupt if overflow
IRETReturn from interrupt
JxxJump 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)
JMPJump
LAHFLoad flags into AH register
LDSLoad pointer using DS
LEALoad Effective Address
LESLoad ES with pointer
LOCKAssert BUS LOCK# signal(for multiprocessing)
LODSBLoad byte
LODSWLoad word
LOOP/LOOPxLoop control(LOOPE, LOOPNE, LOOPNZ, LOOPZ)
MOVMove
MOVSBMove byte from string to string
MOVSWMove word from string to string
MULUnsigned multiply
NEGTwo's complement negation
NOPNo operation
NOTNegate the operand, logical NOT
ORLogical OR
OUTOutput to port
POPPop data from stack
POPFPop data into flags register
PUSHPush data onto stack
PUSHFPush flags onto stack
RCLRotate left (with carry)
RCRRotate right (with carry)
REPxxRepeat CMPS/MOVS/SCAS/STOS(REP, REPE, REPNE, REPNZ, REPZ)
RETReturn from procedure
RETNReturn from near procedure
RETFReturn from far procedure
ROLRotate left
RORRotate right
SAHFStore AH into flags
SALShift Arithmetically left (multiply)
SAR Shift Arithmetically right (signed divide)
SBBSubtraction with borrow
SCASBCompare byte string
SCASWCompare word string
SHLShift left (multiply)
SHRShift right (unsigned divide)
STCSet carry flag
STDSet direction flag
STISet interrupt flag
STOSBStore byte in string
STOSWStore word in string
SUBSubtraction
TESTLogical compare (AND)
WAITWait until not busyWaits until BUSY# pin is inactive (used with floating-point unit)
XCHGExchange data
XLATTable look-up translation
XORExclusive OR