Anar al contingut

Intel 8086 i 8088

De L'Enciclopèdia, la wikipedia en valencià

El Intel 8086 i el Intel 8088 (i8086, cridats oficialment iAPX 86, i i8088) són els primers microprocessadorés de 16 bits dissenyats per Intel. Varen ser l'inici i els primers membres de l'arquitectura x86. El treball de desenroll per al 8086 va començar en la primavera de 1976 i va ser llançant al mercat el 8 de juny[1] de 1978. El 8088 va ser llançat l'1 de juny de 1979.

El 8086 i el 8088 eixecuten el mateix conjunt d'instruccions. Internament són idèntics, excepto que el 8086 té una coa de 6 bytes per a instruccions i el 8088 de sol 4. Exteriormente es diferencien que el 8086 té un bus de senyes de 16 bits i el del 8088 és de sol 8 bits, per això, el 8086 era més ràpit. Per un atre costat, el 8088 podia usar menys circuits llògics de soport, lo que permetia la fabricació de sistemes més econòmics.

El 8088 va ser el microprocessador usat per al primer computador personal d'IBM, l'IBM PC, que va eixir al mercat en agost de 1981. Cal tindre en conte que la majoria de l'hardware, de principis dels 80, era de 8 bits, i més barat. L'hardware de 16 bits era casi inexistent en 1981 i car.

Història

[editar | editar còdic]

Antecedents

[editar | editar còdic]

El 8088 va ser dissenyat en Israel, en el laboratori Intel d'Haifa, de la mateixa manera que un gran número d'atres processadors Intel. En 1972, Intel va llançar el 8008, el primer microprocessador de 8 bits.[2] El 8008 va implementar un conjunt d'instruccions dissenyat per la corporació Datapoint la qual tenia en ment fer terminals de CRT programables. El 8008 també va demostrar ser prou de propòsit general. El dispositiu va necessitar de varis circuits integrats adicionals per a produir un computador funcional, en part, pel seu chicotet «paquet de memòria» de 18 pines, el qual va eliminar l'us d'un bus de direccions separat (En eixe temps, Intel era primàriament un fabricant de DRAM).

Dos anys més vesprada, en 1974, Intel va llançar el 8080,[3] amprant els nous paquets DIL de 40 pines desenrollats originalment per a circuits integrats de calculadora per a permetre un bus de direccions separat. Tenia un conjunt d'instruccions estés que era compatible a nivell de còdic font, no de còdic de màquina binario com el 8080. També es varen incloure algunes instruccions de 16 bits en el 8080 per a fer de la seua programació més entendible. El dispositiu 8080, en freqüència descrit com el primer microprocessador verdaderament útil, va anar finalment substituït pel 8085, basant-se en la tecnologia depletion-lloeu NMOS (1977) que podia treballar en una sola font d'alimentació de 5V en lloc dels tres diferents voltages de funcionament dels 2 chips anteriors.[4] Atres microprocessadors de 8 bits ben coneguts que varen emergir durant estos anys varen ser el Motorola 6800 (1974), MOS Technology 6502 (1975), Zilog Z80 (1976), i Motorola 6809 (1978), aixina com uns atres.

El primer disseny x86

[editar | editar còdic]
Artícul principal → x86.


El proyecte 8086 va començar en maig de 1976 i va ser pensat originalment com un substitut temporal per a l'ambiciós i retardat proyecte del iAPX 432.

Va ser un intent de furtar l'atenció dels menys retardats processadors de 16 i 32 bits dels atres fabricants (tals com Motorola, Zilog, i National Semiconductor) i al mateix temps contrarrestar l'amenaça del Zilog Z80, que va aplegar a ser molt exitós (dissenyat per anteriors empleats d'Intel).

Per lo tant, tant l'arquitectura i el chip físic varen ser desenrollats ràpidament per un chicotet grup de persones, i usant els mateixos elements bàsics de la microarquitectura i tècniques físiques d'implementació les quals varen ser amprades per al llaugerament més vell 8085 (i per al qual el 8086 també funcionaria com una continuació).

Erro al crear miniatura:
Lenguaje de máquina del Intel 8088. El còdic de màquina en hexadecimal es resalta en roig, l'equivalent en llenguage ensamblador en magenta, i les direccions de memòria a on es troba el còdic, en blau. Avall es veu un text en hexadecimal i ASCII.

Comercialisat com a compatible a nivell de còdic font, el 8086 va ser dissenyat de modo que el llenguage ensamblador per al 8008, 8080, o el 8085 poguera ser convertit automàticament en (subóptimo) còdic font equivalent del 8086, en poca o cap edició a mà.

Per a fer açò possible, el model de programació i el conjunt d'instruccions varen ser llaugerament basats en el 8080.

No obstant, el disseny del 8086 va ser ampliat per a soportar el complet processament de 16 bits, en lloc de les bàsiques capacitats de 16 bits del 8080/8085.

També varen ser agregades noves classes d'instruccions, compatibilitat per a sancers en signe, direccionament de base + offset, i les operacions auto-repetides varen ser semblants a les del disseny del Z80,[5] pero totes varen ser fetes lleument més generals en el 8086. També varen ser agregades instruccions que soportaven les funcions anidades de la família de llenguages ALGOL tals com Pascal i PL/M. D'acort al principal arquitecte Stephen P. Morse, açò va ser un resultat d'un acostament més centrat en el software que en el que va haver en el disseny de processadors anteriors d'Intel (els dissenyadors tenien experiència treballant en implementacions de compiladors).

Atres millores varen incloure instruccions de multiplicació i divisió per microcódigo i una estructura de bus millor adaptada per a futurs coprocessadorés (tals com el 8087 i el 8089) i als sistemes de multiprocessadorés.

La primera revisió del conjunt d'instruccions i l'arquitectura d'alt nivell estava llista despuix de prop de tres mesos,[6] i com no va ser usada casi cap ferramenta CAD, quatre ingeniers i 12 persones de diagramación estaven simultàneament treballant en el chip.[7] El 8086 va prendre una miqueta més de dos anys des de l'idea fins al producte treballant, lo que va ser considerat alguna cosa ràpit per a un complex disseny en 1976-1978.

El 8086 va ser secuenciado[8] usant una mescla a l'encert de llògica i microcódigo i va ser implementat usant circuitería de depletion lloeu nMOS en aproximadament 20.000 transistors actius (29.000 contant tots els llocs del ROM i el PLA). Pronte va ser mogut a un nou procés de fabricació refinat de nMOS cridat HMOS (per High performance MOS) que Intel va desenrollar originalment per a la fabricació de productes de RAM estàtica ràpida.[9] Açò va ser seguit per versions d'HMOS-II, HMOS-III, i, finalment, una versió completament estàtica de CMOS para dispositius energizados en bateries, manufacturados usant els processos de CHMOS d'Intel.[10] El chip original va medir 33 mm² i el mínim tamany va ser de 3.2 µm.

L'arquitectura va ser definida per Stephen P. Morse en certa ajuda i assistència de Bruce Ravenel (l'arquitecte del 8087) en refinar les revisions finals. Els dissenyadors de la llògica Jim McKevitt i John Bayliss varen ser els ingeniers que encapçalaven l'equip de desenroll de nivell d'hardware,[11] i William Pohlma el gerent per al proyecte. L'herència del 8086 perdura en el conjunt d'instrucció bàsic dels computadors personals i servidors d'hui; el 8086 també va prestar els seus últims dos dígits a posteriors versions esteses de disseny, tals com l'Intel 286 i l'Intel 386, totes les quals finalment serien conegudes com la família x86. (Una atra referència és que l'identificació de venedor del PCI per als dispositius d'Intel és 8086h!)

Estructura interna

[editar | editar còdic]
Erro al crear miniatura:
Diagrama de bloque de los microprocesadorés Intel 8086 i 8088.
1 Bloc de registres de propòsit general
2 Bloc de registres de segment i registre IP
3 Sumador de direccions
4 Bus de direccions intern
5 Coa d'instruccions (4 bytes per al 8088 i 6 bytes per al 8086)
6 Unitat de control (molt simplificada)
7 Interfaç del bus
8 Bus de senyes intern
9 Unitat aritmètic llògica (ALU)
10, 11, 12 Bus de direccionar, senyes i control externs

Unitat d'interfaç del bus i unitat d'eixecució

[editar | editar còdic]

El 8086 i el 8088 tenen internament dos components, l'Unitat d'Interfaç del Bus i l'Unitat d'eixecució (Bus Interfaç Unit (BIU) i Execution Unit (EU)).

  • L'Unitat d'Eixecució processa les instruccions del CPU. Està conformada pels registres generals, els registres índex i apuntadors, els flags, l'unitat aritmètic llògica, i la llògica de control que maneja tot el procés per a eixecutar les instruccions.
  • L'Unitat d'Interfaç del Bus maneja la llectura i escritura des d'i cap a la memòria i els ports d'entrada/eixida. Està conformada pels registres de segment, una coa de 4 bytes per a instruccions en el 8088 i de 6 en el 8086, i llògica per a controlar els busos externs del microprocessador.

En la figura de la dreta, l'Unitat d'Eixecució es troba en la part d'avall i l'Unitat d'Interfaç del Bus està en la part superior. Les dos estan interconectades per mig d'un bus intern.

Registres

[editar | editar còdic]

Els registres de l'i8086 i i8088 es varen basar en el disseny del Intel 8080 i l'Intel 8085, i de fet són compatibles a nivell de llenguage ensamblador en l'i8080. El conjunt de registres també és similar al de l'i8080, pero ampliats a 16 bits. Tant l'i8086 com l'i8088 tenen quatre registres de propòsit general de 16 bits, que també poden ser accedits com huit registres de 8 bits, i tenen quatre registres índex de 16 bits (incloent el busca de pila). Els registres de senyes s'usen a voltes de forma implícita per les instruccions, fent més difícil l'organisació dels registres per a amprar-els en valors temporals.

Els registres del processador, s'usen per a contindre les senyes en que s'està treballant posat que l'accés als registres és molt més ràpit que els accessos a memòria. Es poden realisar operacions aritmètiques i llògiques, comparacions, entre unes atres. Es poden fer estes operacions en tots els registres llevat els de segment, l'IP, i els flags.

Registres de Propòsit General

[editar | editar còdic]
Registres de propòsit general
AH A EL AX (Acumulador)
BH BL BX (Base)
CH CL CX (Contador)
DH DL DX (Senyes)
Registres índexs
SI Source Index (Índex orige)
VAIG DONAR Destination Index (Índex Destine)
BP Bagarra Pointer (Punter Base)
SP Stack Pointer (Busca de Pila)
Registre de Bandera
- - - - O D I T S Z - A |

style="width:10px" align="center" | -

P - C Flags (Banderes)
Registres de Segments
CS Code Segment (Segment de Còdic)
DS Dnuga Segment (Segment de Senyes)
ÉS IxtraSegment (Segmente Extra)
SS Stack Segment (Segment de Pila)
Registre apuntador d'instruccions
IP Instruction Pointer

Els registres de propòsit general són el AX, BX, CX, i DX, de 16 bits. Cada u d'ells es dividix en dos registres de 8 bits, cridats AH i Al, BH i BL, CH i CL, i, DH i DL, H significant High (alt) i L significant Low (baix), indicant la part alta o la part baixa del registre corresponent de 16 bits (vore esquema). Un programa podia usar tant els registres de 16 bits com els registres de 8 bits. Aparte de l'us general dels registres per a fer càlculs aritmètics i llògics, existixen instruccions que usen estos registres en un us particular especialisat, com s'indica a continuació:

  • Registre AX: El registre AX és el registre acumulador, és utilisat per a operacions que impliquen entrada/eixida, multiplicació i divisió (estes dos últimes en conjunt en el registre DX)
  • Registre BX: El registre BX és el registre base, i és l'únic registre de propòsit general que pot ser un índex per a direccionament indexat
  • Registre CX: El registre CX és conegut com el registre contador. Pot contindre un valor per a controlar el número de voltes que un cicle es repetix o un valor per a corriment de bits
  • Registre DX: El registre DX és el registre de senyes. En algunes operacions s'indica per mig d'este registre el número de port d'entrada/eixida, i en les operacions de multiplicació i divisió de 16 bits s'utilisa junt en l'acumulador AX

Registres Índex

[editar | editar còdic]

Els registres SI i VAIG DONAR estan disponibles per a direccionament indexat i per a operacions de cadenes de caràcters.

  • Registre SI: El registre índex font de 16 bits és requerit per algunes operacions en cadenes de caràcters. El SI està associat en el segment DS.
  • Registre VAIG DONAR: El registre índex destine també és requerit per algunes operacions en cadenes de caràcters. El VAIG DONAR està associat en el segment ÉS.

Registres Apuntadors

[editar | editar còdic]

Els registres SP (apuntador de pila) i BP (apuntador base) estan associats en el registre SS i permeten al sistema accedir a senyes en el segment de la pila.

  • Registre SP: L'apuntador de pila de 16 bits està associat en el segment SS i proporciona un valor de desplaçament que es referix a la paraula actual que està sent processada en la pila. El sistema maneja de manera automàtica este registre, encara que el programa pot fer certes manipulacions en ell.
  • Registre BP: L'apuntador base de 16 bits facilita la referència de paràmetros dins de la pila.

Registres de Banderes

[editar | editar còdic]

És un registre de 16 bits, dels quals nou servixen per a indicar l'estat actual de la màquina i el resultat del processament. Moltes instruccions aritmètiques i de comparació canvien l'estat de les banderes i recolzant-se en elles es poden prendre decisions per a determinar l'acció subsecuente.

La taula conté 16 posicions (de 0 a 15), que són els 16 bits del registre de banderes, numerades de dreta a esquerra. La posició 0 la trobarem a la dreta i la posició 15 a l'esquerra.

- - - - OF DF IF TF SF ZF - AF - PF - CF

Els bits de les banderes són les següents:

  • OF (overflow, desbordament): Indica desbordament del bit de major orde despuix d'una operació aritmètica de números en signe (1=existix overflow; 0=no existix overflow). Per a operacions sense signe, no es pren en conte esta bandera.
  • DF (direcció): Controla la selecció d'increment o decremento dels registres SI i VAIG DONAR en les operacions en cadenes de caràcters (1=decremento automàtic; 0=increment). La bandera DF es controla en les instruccions STD i CLD.
  • IF (interrupció): Controla el dispar de les interrupcions (1=habilita les interrupcions; 0=deshabilita les interrupcions). l'interrupció no enmascarable és l'única que no pot ser bloquejada per esta bandera. L'estat de la bandera IF es controla en les instruccions STI i CLI.
  • TF (trampa): Permet l'operació del processador en modo de depuració (pas a pas)
  • SF (signe): Conté el signe resultant d'una operació aritmètica (0=positiu; 1=negatiu).
  • ZF (zero): Indica el resultat d'una operació aritmètica o de comparació (0=resultat diferent de zero; 1=resultat igual a zero).
  • AF (carrege auxiliar): Conté el carrege del bit 3. Esta bandera es prova en les instruccions DAA i DONES per a ajustar el valor del despuix d'una suma o resta BCD.
  • PF (paritat): Indica si el número de bits 1, del byte menys significatius d'una operació, és parell (0=número de bits 1 és impar; 1=número de bits 1 és parell).
  • CF (carrege): Conté el carrege del bit de major orde despuix d'una operació aritmètica; també almagasena el contingut de l'últim bit en una operació de desplaçament o de rotació.

Registres de Segment

[editar | editar còdic]

Definixen àrees de 64 Kb dins de l'espai de direccions d'1 Mb del 8086. Estes àrees poden solaparse total o parcialment. No és possible accedir a una posició de memòria no definida per algun segment: si cal, haurà de moure's algun.

  • Registre CS: El DOS almagasena la direcció inicial del segment de còdic d'un programa en el registre CS. Esta direcció de segment, més un valor de desplaçament en el registre apuntador d'instrucció (IP), indica la direcció d'una instrucció que és buscada per a la seua eixecució. Per a propòsits de programació normal, no es necessita referenciar el registre CS.
  • Registre DS: La direcció inicial d'un segment de senyes de programa és almagasenada en el registre DS. Esta direcció, més un valor de desplaçament en una instrucció, genera una referència a la localitat d'un byte específic en el segment de senyes.
  • Registre SS: El registre SS permet la colocació en memòria d'una pila, per a almagasenament temporal de direccions i senyes. El DOS almagasena la direcció d'inici del segment de pila d'un programa en el registre SS. Esta direcció de segment, més un valor de desplaçament en el registre de l'apuntador de la pila (SP), indica la paraula actual en la pila que està sent direccionar. Per a propòsits de programació normal, no es necessita referenciar el registre SS.
  • Registre ÉS: Algunes operacions en cadenes de caràcters utilisen el registre extra de segment per a manejar el direccionament de memòria. El registre ÉS està associat en el registre VAIG DONAR (Índex). Un programa que requerix l'us del registre ÉS pot inicializarlo en una direcció de segment apropiada.

Registre Apuntador d'Instruccions

[editar | editar còdic]

El registre IP de 16 bits conté el desplaçament de direcció de la següent instrucció que s'eixecuta. L'IP està associat en el registre CS en el sentit de que l'IP indica l'instrucció actual dins del segment de còdic que s'està eixecutant actualment en la memòria.

Accés a memòria i a ports

[editar | editar còdic]

Abdós microprocessadorés tenen un ranc de 65536 direccions d'entrada/eixida que es poden accedir com a ports de 8 o 16 bits. En la part baixa de la memòria hi ha 256 vectores d'interrupció.

Estos processadors usaven 20 bits de direcció que els permetia accedir fins a 1 MB de memòria. Els seus registres interns eren de sol 16 bits, per lo que es va desenrollar un mecanisme usant registres de segment per a poder accedir al megabyte de memòria. El 8086 i el 8088 tenien quatre registres de segment de 16 bits (CS, DS, ÉS i SS). En lloc de suministrar els 4 bits faltantes per a direccionar els 20 bits, com la majoria dels processadors segmentats, el 8086 i el 8088 desplacen el contingut del registre de segment 4 bits cap a l'esquerra i ho sumen a una direcció de memòria de 16 bits provinent de registres índex (BX, SI, VAIG DONAR, BP, SP, IP) i opcionalmente una constant, sent el resultat la direcció efectiva. Açò sol ser considerat com un mal disseny, encara que pot ser acceptable, i inclús útil en el llenguage ensamblador. Pel contrari, provoca confusió quan es fa un us extensiu dels punters (com en el llenguage C), degut a que és possible que dos busques en diferents valors apunten a la mateixa direcció de memòria. Este esquema de segments es va canviar en l'Intel 80286 i després en l'Intel 80386.

Segmentación

[editar | editar còdic]
Erro al crear miniatura:
Cálculo de la dirección efectiva mediante el uso de un segmento y un offset. El segmento (de 16 bits) se desplaza 4 bits a la izquierda (se multiplica por 16), y se le suma el registro de direccionamiento (de 16 bits), dando por resultado una dirección lineal de 20 bits.
Artícul principal → Segmentación de memòria del x86.


Hi havia també quatre registres de 16 bits de segment que permetien al 8086 i 8088 tindre accés a un megabyte de memòria d'una manera inusual. En lloc de concatenar el registre de segment en el registre de direcció, com en la majoria dels processadors l'espai dels quals de direcció excedia el seu tamany de registre, el 8086 i el 8088 desplaçaven el segment de 16 bits sol quatre bits cap a l'esquerra abans de sumar-ho un offset de 16 bits (16×segmente + offset), produint una direcció externa (efectiva o física) de 20 bits a partir del parell segmente:offset de 32 bits. Conseqüentment, cada direcció externa podia ser referida per 212 = 4096 diferents parells segmente:offset. La separació de 16 bytes entre les bases del segment (pel desplaçament de 4 bits) va ser cridada un paràgraf. Encara que va ser considerat complicat i incómodo per molts programadors, este esquema també tenia ventages; un chicotet programa (menys de 64 KB) podia ser carregat començant en un offset fix (com 0) en el seu propi segment, evitant la necessitat de relocalización, en a lo més 15 bytes d'alliniació desperdiciats.

Els compiladors per a la família 8086 comunament soportaven dos tipos de punters, prop i llunt (near i far). Les busques near eren offset de 16 bits implícitament associats en el segment del còdic o de senyes del programa i aixina podien ser usats solament dins de parts d'un programa suficientment chicotet per a cabre en un segment. Les busques far eren parells segmente:offset de 32 bits que es resolien en direccions externes de 20 bits. Alguns compiladors també soportaven busques enormes (huge), que eren com les busques far llevat que l'aritmètica de busca en una busca huge ho tractava com una busca llineal de 20 bits, mentres que l'aritmètica de busca en una busca huge donava regressos (wrapped around) dins del seu offset de 16 bits sense tocar la part del segment de la direcció.

Per a evitar la necessitat d'especificar near i far en numeroses busques, estructures de senyes, i funcions, els compiladors també soporten els "models de memòria" que especifiquen tamanys de busca per defecte. Els models minúscul (tiny) (64K màxim), chicotet (small) (128K màxim), compacte (compact) (senyes > 64K), mig (medium) (còdic > 64K), gran (large) (còdic i senyes > 64K), i enorme (huge) (apanys individuals > 64K), cobrien les combinacions de busques near. far i enorme per a còdic i senyes. El model tiny significava que el còdic i les senyes estaven compartides en un sol segment, just com en la majoria dels processadors basats en 8 bits, i podia ser usat per a construir archius . com per eixemple. Les biblioteques precompilades varen vindre a sovint en vàries versions compilades per a diversos models de memòria.

Segons Morse i uns atres, els dissenyadors comtemplaban realment usar un desplaçament de 8 bits (en lloc de 4 bits), per a crear un espai de direcció física de 16 MB. No obstant, puix que açò hauria forçat als segments començar llímits de 256 bytes, i, al voltant de 1976, 1 MB era considerat molt gran per a un microprocessador, l'idea va ser descartada. També, no hi havia suficients pines disponibles en un paquet barat de 40 pines.[12]

En principi, l'espai de direcció de la serie x86 va poder haver-se estés en processadors posteriors, aumentant el valor del desplaçament, mentres les aplicacions obtingueren els seus segments del sistema operatiu i no feren assunció sobre l'equivalència de diferents parells segmente:offset.[13] En la pràctica l'us de punters “huge” i de mecanismes similars era ampli i la direcció plana de 32 bits es va fer possible, en els registres d'offset de 32 bits en el 80386, finalment estendre el llímit del ranc de direccions en una forma més general.

Portant software vell
[editar | editar còdic]

Els menuts programes podien ignorar la segmentación i solament usar la direcció plana de 16 bits. Est permetia al software de 8 bits ser portat en prou facilitat al 8086 i 8088. Els autors del MS-DOS varen prendre ventaja d'açò proporcionant una interfaç de programació d'aplicacions molt similar a la del CP/M aixina com incloent el simple format d'archiu eixecutable. com, idèntic al del CP/M. Açò era important quan el 8086/8088 i el MS-DOS eren nous, perque va permetre que moltes aplicacions existents de CP/M (i uns atres) fer-se ràpidament disponibles, facilitant grandemente l'acceptació de la nova plataforma.

Direcció de la primera instrucció eixecutable: FFFF:0

[editar | editar còdic]

Els processadors 8088 i 8086, per disseny del seu hardware, eixecutaven la seua primera instrucció en la direcció FFFF:0 (16 bytes per avall del top de la seua capacitat de memòria d'1 MB en els seus 20 bits de direccionament). En esta àrea deu haver una ROM per a poder eixecutar les seues instruccions en encendre o reiniciar el computador (o dispositiu). En el cas del IBM PC, en eixa àrea estava l'IBM PC ROM BIOS, i la primera instrucció que este eixecutava era un bot (JMP) a l'inici del còdic del Power On Self Test (POST), a on hi havia còdic per a revisar el CPU i revisar i inicializar els diferents components de l'hardware i el propi BIOS del computador, i al final s'eixecutava Boot Strap Loader, que iniciava el Bootstrap.[14] Els microprocessadors de la llínea x86 han heretat esta direcció de memòria (FFFF:0) per a la primera instrucció eixecutable.

Modos de direccionament

[editar | editar còdic]

Els processadors 8086 i 8088 tenien els següents modos de direccionament:

  • Implícit. La senya està implícita en la pròpia instrucció. Ej. STC, STD i STI, (Set Carry, Set Direcction i Set Interrupts) encenen el flag corresponent indicat en la pròpia instrucció. CBW (Convert Byte to Word) estén el bit del signe del registre A l'a AX. Ni l'A EL ni el AX són especificats, ya que l'instrucció CBW implícitament treballa sobre ells.
  • Immediat. La senya a operar està immediatament despuix del opcode de l'instrucció. Ej, MOV AX, 5
  • Registre. La senya està en un segon registre. Ej. MOV AX, BX. Ací, la senya està en el registre BX
  • Directe. La direcció de la senya està en el camp de la direcció del opcode. Ej. MOV AX, [100h]. Ací es mou (còpia) el contingut de les direccions 100h i 101h al registre AX. En este cas es mouen dos bytes posat que AX és de 16 bits. Si fora MOV BL, [100h] es mouria solament un byte puix BL és un registre de 8 bits
  • Indirecte. La senya és especificada per mig d'una combinació de registres índex i base, i pot haver un desplaçament
    • Base. Un registre base (BX o BP) tenen la direcció d'a on es prendrà la senya. Ej. MOV AX, [BX]
    • Índex. Un registre índex (SI o VAIG DONAR) tenen la direcció d'a on es prendrà la senya. Ej. MOV AX, [SI]
    • Base + Desplaçament. La senya es prendrà de la direcció apuntada per la suma d'un registre base més un desplaçament. Ej. MOV AX, [BP + 7]
    • Índex + Desplaçament. La senya es prendrà de la direcció apuntada per la suma d'un registre índex més un desplaçament. Ej. MOV AX, [VAIG DONAR + 7]
    • Base + Índex. La senya es prendrà de la direcció apuntada per la suma d'un registre base més un registre índex. Ej. MOV AX, [BX + SI]
    • Base + Índex + Desplaçament. La senya es prendrà de la direcció apuntada per la suma d'un registre base, més un registre índex, més un desplaçament. Ej. MOV AX, [BX + SI + 9]

Patillaje

[editar | editar còdic]

Pines del 8086 i del 8088. Les llínees del bus de direccions es veuen en roig, les del bus de senyes en blava i les del bus de control en vert. Les llínees del bus d'energia es veuen en negre. Estos processadors multiplexan en temps el bus de direccions, en el bus de senyes i control. En el 8086 es veuen els pines del 2 al 16 i els pines 35 al 39 en doble funcionalitat, en un moment determinat transporta la direcció i en un atre moment entren o ixen les senyes (o ix informació d'algunes llínees del bus de control).

En el 8088 es compartixen els pines 9 al 16 entre el bus de direccions i de senyes, i els pines 35 al 38 entre el bus de direccions i el de control.

Pines del 8086

[editar | editar còdic]
                   +--_/--+
            GND   1|       |40  Vcc (+5V)
<-> D14 <-- A14   2|       |39  A15 --> D15 <->
<-> D13 <-- A13   3|       |38  A16 --> S3  -->
<-> D12 <-- A12   4|       |37  A17 --> S4  -->
<-> D11 <-- A11   5|       |36  A18 --> S5  -->
<-> D10 <-- A10   6|       |35  A19 --> S6  -->
<->  D9 <--  A9   7|       |34  ! BHE/S7 -->
<->  D8 <--  A8   8|       |33  MN/! MX  <--
<->  D7 <--  A7   9| Intel |32  ! RD     -->
<->  D6 <--  A6  10| 8086  |31  HOLD,  ! RQ/! GTO <->
<->  D5 <--  A5  11|       |30  HLDA,  ! RQ/! GT1 <->
<->  D4 <--  A4  12|       |29  ! WR,   ! LOCK    -->
<->  D3 <--  A3  13|       |28  M/! IO, ! S2      -->
<->  D2 <--  A2  14|       |27  DT/! R, ! S1      -->
<->  D1 <--  A1  15|       |26  ! DONEN,  ! S0      -->
<->  D0 <--  A0  16|       |25  ALE,   QS0      -->
        --> NMI  17|       |24  ! INTA, QS1      -->
        -->INTR  18|       |23  ! TEST  <--
        --> CLK  19|       |22  READY  <--
            GND  20|       |21  RESET  <--
                   +-------+

Pines del 8088

[editar | editar còdic]

Ademés del bus extern de senyes, que es reduïx a 8 bits, la diferència en el 8086 és mínima.

                 +--_/--+
           GND  1|       |40 Vcc (+5V)
       <-- A14  2|       |39 A15 -->
       <-- A13  3|       |38 A16 --> S3 -->
       <-- A12  4|       |37 A17 --> S4 -->
       <-- A11  5|       |36 A18 --> S5 -->
       <-- A10  6|       |35 A19 --> S6 -->
       <--  A9  7|       |34 ! SSO....HIGH,    -->
       <--  A8  8|       |33 MN/! MX           <--
<-> D7 <--  A7  9| Intel |32 ! RD              -->
<-> D6 <--  A6 10| 8088  |31 HOLD....! RQ/! GTO <->
<-> D5 <--  A5 11|       |30 HLDA....! RQ/! GT1 <->
<-> D4 <--  A4 12|       |29 ! WR.....! LOOK    -->
<-> D3 <--  A3 13|       |28 M/! IO...! S2      -->
<-> D2 <--  A2 14|       |27 DT/! R...! S1      -->
<-> D1 <--  A1 15|       |26 ! DONEN....! S0      -->
<-> D0 <--  A0 16|       |25 ALE.....QS0      -->
       --> NMI 17|       |24 ! INTA...QS1      -->
       -->INTR 18|       |23 ! TEST            <--
       --> CLK 19|       |22 READY            <--
           GND 20|       |21 RESET            <--
                 +-------+

Vore també

[editar | editar còdic]

Antecessors

[editar | editar còdic]

Successors

[editar | editar còdic]

Referències

[editar | editar còdic]
  1. «x86-guide. net/es/cpu/intel-8086-CerDIP-cpu-no653. html Guia de les x86 - Vore detalls en Intel 8086 CerDIP». www. x86-guide. net. Consultat el 2025-05-26.
  2. using enhancement lloeu pMOS logic (demanding 14V, achieving TTL-compatibility by having VCC at +5V and VDD at -9V)
  3. using senar-saturated enhancement lloeu nMOS logic (demanding a higher gate voltage for the lloeu transistor-gates)
  4. made possible with depletion lloeu nMOS logic (the 8085 was later made using HMOS processing, just like the 8086)
  5. pcworld. com/article/146957/birth_of_a_standard_the_intel_8086_microprocessor. html Birth of a Standard: The Intel 8086 Microprocessor. Thirty years ago, Intel released the 8086 processor, introducing the x86 architecture that underlies every PC-Windows, Mac, or Linux-produced today pcworld. com/article/146957/birth_of_a_standard_the_intel_8086_microprocessor. html archivat en Wayback Machine., PC World, June 17, 2008
  6. Rev.0 of the instruction set and architecture was ready in about 3 months, according to Morse.
  7. Using rubylith, light boards, rulers, electric erasers, and a digitizer (according to Jenny Hernandez, member of the 8086 design team, in a statement made on Intel's web-page for its 25th birthday).
  8. 8086 used less microcode than many competitors designs, such as the MC68000 and others
  9. Fast static RAMs in MOS technology (as fast as bipolar RAMs) was an important product for Intel during this period.
  10. CHMOS is intels name for CMOS circuits manufactured using processing steps very similar to HMOS.
  11. Other members of the design team were Peter A. Stoll and Jenny Hernandez.
  12. Intel 8008 to 8086 by Stephen P. Morse et al.
  13. Some 80186 clons did change the shift value, but were never commonly used in desktop computers.
  14. IBM PC Technical Reference Manual (Número de part 6025008), pág A-80 i A-5