Intel 8080 - Intel 8080

Intel 8080
KL Intel i8080 Black Background.jpg
Uma variante do processador Intel C8080A com cerâmica branca, um dissipador de calor dourado e pinos dourados.
Informação geral
Lançado Abril de 1974 ; 47 anos atrás ( 1974-04 )
Interrompido 1990 ; 31 anos atrás ( 1990 )
Comercializado por Intel
Projetado por Intel
Fabricante (s) comum (is)
atuação
Máx. Taxa de clock da CPU 2 MHz a 3,125 MHz
Largura de dados 8 bits
Largura do endereço 16 bits
Arquitetura e classificação
Min. tamanho do recurso 6 µm
Conjunto de instruções 8080
Especificações físicas
Transistores
Núcleos
Pacote (s)
Tomadas)
História
Antecessor Intel 8008
Sucessor Intel 8085

O Intel 8080 ( "oitenta e oitenta" ) é o segundo microprocessador de 8 bits projetado e fabricado pela Intel . Ele apareceu pela primeira vez em abril de 1974 e é uma variante estendida e aprimorada do design anterior do 8008 , embora sem compatibilidade binária . A taxa de clock especificada inicial ou limite de frequência era de 2  MHz , e com instruções comuns usando 4, 5, 7, 10 ou 11 ciclos, isso significava que operava a uma velocidade típica de algumas centenas de milhares de instruções por segundo . Uma variante mais rápida 8080A-1 (às vezes chamada de 8080B) tornou-se disponível posteriormente com limite de frequência de clock de até 3,125 MHz.

O 8080 precisa de dois chips de suporte para funcionar na maioria das aplicações, o gerador / driver de relógio i8224 e o controlador de barramento i8228, e é implementado em lógica de semicondutor de óxido metálico tipo N (NMOS) usando transistores de modo de aprimoramento não saturado como cargas exigindo assim uma tensão de +12  V e uma tensão de −5 V, além da lógica transistor-transistor principal (TTL) compatível com +5 V.

Embora os primeiros microprocessadores fossem usados ​​para calculadoras , caixas registradoras , terminais de computador , robôs industriais e outras aplicações, o 8080 se tornou um dos primeiros microprocessadores difundidos. Vários fatores contribuíram para sua popularidade: seu pacote de 40 pinos facilitou a interface do que o 8008 de 18 pinos e também tornou seu barramento de dados mais eficiente; sua implementação NMOS deu transistores mais rápidos do que aqueles da lógica semicondutor de óxido de metal tipo P (PMOS) 8008, ao mesmo tempo que simplificou a interface ao torná-lo compatível com TTL ; uma variedade maior de chips de suporte estava disponível; seu conjunto de instruções foi aprimorado em relação ao 8008; e seu barramento de endereço completo de 16 bits (contra o de 14 bits do 8008) permitiu que ele acesse 64 KB de memória, quatro vezes mais do que o intervalo de 16 KB do 8008. Ele se tornou o motor do Altair 8800 e subsequentes computadores pessoais com barramento S-100 , até ser substituído pelo Z80 nessa função, e foi a CPU de destino original para sistemas operacionais CP / M desenvolvidos por Gary Kildall .

O 8080 foi bem-sucedido o suficiente para que a compatibilidade de tradução no nível da linguagem de montagem se tornasse um requisito de design para o Intel 8086 quando seu design começou em 1976, e levou o 8080 a influenciar diretamente todas as variantes posteriores das onipresentes arquiteturas x86 de 32 e 64 bits .

Descrição

Modelo de programação

microarquitetura i8080
Registros Intel 8080
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (posição do bit)
Registros principais
UMA Bandeiras P rogram S tatus W ord
B C B
D E D
H eu H (endereço indireto)
Registros de índice
SP S tack P ointer
Contador de programa
PC P rogram C ounter
Registro de status
  S Z - AC - P - C Bandeiras

O Intel 8080 é o sucessor do 8008 . Ele usa o mesmo conjunto de instruções básicas e modelo de registro que o 8008 (desenvolvido pela Computer Terminal Corporation ), embora não seja compatível com o código-fonte nem com o código binário de seu predecessor. Cada instrução no 8008 tem uma instrução equivalente no 8080 (embora os opcodes sejam diferentes entre as duas CPUs). O 8080 também adiciona algumas operações de 16 bits em seu conjunto de instruções. Enquanto o 8008 exigia o uso do par de registradores HL para acessar indiretamente seu espaço de memória de 14 bits, o 8080 adicionou modos de endereçamento para permitir acesso direto a seu espaço de memória de 16 bits completo. Além disso, a pilha de chamadas push-down de 7 níveis interna do 8008 foi substituída por um registro de ponteiro de pilha (SP) de 16 bits dedicado. O grande pacote DIP de 40 pinos do 8080 permite fornecer um barramento de endereço de 16 bits e um barramento de dados de 8 bits , permitindo fácil acesso a 64  KB (64 × 2 10 ) de memória.

Registros

O processador tem sete registros de 8 bits (A, B, C, D, E, H e L), onde A é o acumulador primário de 8 bits e os outros seis registros podem ser usados ​​como registros individuais de 8 bits ou como três pares de registradores de 16 bits (BC, DE e HL, referidos como B, D e H em documentos da Intel) dependendo da instrução particular. Algumas instruções também permitem que o par de registros HL seja usado como um acumulador (limitado) de 16 bits, e um pseudo-registro M pode ser usado em quase qualquer lugar onde qualquer outro registro possa ser usado, referindo-se ao endereço de memória apontado pelo HL par. Ele também possui um ponteiro de pilha de 16 bits para a memória (substituindo a pilha interna do 8008 ) e um contador de programa de 16 bits .

Bandeiras

O processador mantém bits de sinalização internos (um registro de status ), que indicam os resultados das instruções aritméticas e lógicas. Apenas algumas instruções afetam os sinalizadores. As bandeiras são:

  • Sinal (S), definido se o resultado for negativo.
  • Zero (Z), defina se o resultado for zero.
  • Paridade (P), definida se o número de 1 bits no resultado for par.
  • Carry (C), definido se a última operação de adição resultou em um transporte ou se a última operação de subtração exigiu um empréstimo
  • Transporte auxiliar (AC ou H), usado para aritmética decimal com codificação binária (BCD).

O carry pode ser definido ou complementado por instruções específicas. As instruções de desvio condicional testam os vários bits de status do sinalizador. Os sinalizadores podem ser copiados como um grupo para o acumulador. O acumulador A e os sinalizadores juntos são chamados de registrador PSW ou palavra de status do programa.

Comandos, instruções

Como acontece com muitos outros processadores de 8 bits, todas as instruções são codificadas em um byte (incluindo números de registro, mas excluindo dados imediatos), para simplificar. Alguns deles são seguidos por um ou dois bytes de dados, que podem ser um operando imediato, um endereço de memória ou um número de porta. Como processadores maiores, ele possui instruções CALL e RET automáticas para chamadas e retornos de procedimentos de vários níveis (que podem até ser executados condicionalmente, como saltos) e instruções para salvar e restaurar qualquer par de registradores de 16 bits na pilha da máquina. Existem também oito instruções de chamada de um byte ( RST) para sub-rotinas localizadas nos endereços fixos 00h, 08h, 10h, ..., 38h. Eles devem ser fornecidos por hardware externo para invocar uma rotina de serviço de interrupção correspondente , mas também são frequentemente empregados como chamadas de sistema rápidas . O comando mais sofisticado é XTHL, que é usado para trocar o par de registradores HL com o valor armazenado no endereço indicado pelo ponteiro da pilha.

Instruções de 8 bits

A maioria das operações de 8 bits só pode ser executada no acumulador de 8 bits (o registrador A). Para operações de 8 bits com dois operandos, o outro operando pode ser um valor imediato, outro registrador de 8 bits ou um byte de memória endereçado pelo par de registradores de 16 bits HL. A cópia direta é suportada entre quaisquer dois registros de 8 bits e entre qualquer registro de 8 bits e um byte de memória endereçado por HL. Devido à codificação regular da MOVinstrução (usando um quarto do espaço de opcode disponível), existem códigos redundantes para copiar um registrador para si mesmo ( MOV B,Bpor exemplo), que são de pouca utilidade, exceto para atrasos. No entanto, o que teria sido uma cópia da célula endereçada por HL para si mesma (isto é, MOV M,M) é usado para codificar a HLTinstrução halt ( ), interrompendo a execução até que ocorra um reset externo ou interrupção.

Operações de 16 bits

Embora o 8080 seja geralmente um processador de 8 bits, ele também tem habilidades limitadas para realizar operações de 16 bits: Qualquer um dos três pares de registro de 16 bits (BC, DE ou HL, referido como B, D, H na Intel documentos) ou SP pode ser carregado com um valor imediato de 16 bits (usando LXI), incrementado ou diminuído (usando INXe DCX) ou adicionado ao HL (usando DAD). A XCHGinstrução troca os valores dos pares de registradores HL e DE. Adicionando HL a si mesmo, é possível obter o mesmo resultado que um deslocamento à esquerda aritmético de 16 bits com uma instrução. As únicas instruções de 16 bits que afetam qualquer sinalizador são DAD H/D/B, que definem o sinalizador CY (transporte) para permitir a aritmética programada de 24 ou 32 bits (ou maior), necessária para implementar a aritmética de ponto flutuante , por exemplo.

Esquema de entrada / saída

Espaço da porta de entrada e saída

O 8080 suporta até 256 portas de entrada / saída (E / S), acessadas por meio de instruções de E / S dedicadas, tomando endereços de portas como operandos. Esse esquema de mapeamento de E / S é considerado uma vantagem, pois libera o espaço de endereço limitado do processador. Em vez disso, muitas arquiteturas de CPU usam a chamada E / S mapeada em memória (MMIO), na qual um espaço de endereço comum é usado para RAM e chips periféricos. Isso elimina a necessidade de instruções de E / S dedicadas, embora uma desvantagem em tais projetos seja que um hardware especial deve ser usado para inserir estados de espera, já que os periféricos costumam ser mais lentos que a memória. No entanto, em alguns computadores 8080 simples, as E / S são de fato endereçadas como se fossem células de memória, "mapeadas na memória", deixando os comandos de E / S sem uso. O endereçamento de E / S às vezes também pode empregar o fato de que o processador produz o mesmo endereço de porta de 8 bits para o byte de endereço inferior e superior (ou seja, IN 05hcolocaria o endereço 0505h no barramento de endereço de 16 bits). Esquemas de porta de E / S semelhantes são usados ​​no Zilog Z80 e Intel 8085 compatíveis com versões anteriores e nas famílias de microprocessadores x86 intimamente relacionadas.

Espaço de pilha separado

Um dos bits na palavra de estado do processador (veja abaixo) indica que o processador está acessando dados da pilha. Usando este sinal, é possível implementar um espaço de memória de pilha separado. No entanto, esse recurso raramente é usado.

A palavra de estado interno

Para sistemas mais avançados, durante uma fase de seu loop de trabalho, o processador define seu "byte de estado interno" no barramento de dados. Este byte contém sinalizadores que determinam se a memória ou porta de E / S é acessada e se é necessário lidar com uma interrupção.

O estado do sistema de interrupção (habilitado ou desabilitado) também é emitido em um pino separado. Para sistemas simples, onde as interrupções não são usadas, é possível encontrar casos em que este pino é usado como uma porta de saída de bit único adicional (o popular computador Radio-86RK feito na União Soviética , por exemplo).

Código de exemplo

O seguinte código-fonte do assembler 8080/8085 é para uma sub-rotina chamada memcpyque copia um bloco de bytes de dados de um determinado tamanho de um local para outro. O bloco de dados é copiado um byte de cada vez e a movimentação de dados e a lógica de loop utilizam operações de 16 bits.

 
 
 
 
 
 
 
 
 
 
 
1000
1000
1000  78
1001  B1
1002  C8
1003  1A
1004  77
1005  13
1006  23
1007  0B
1008  78
1009  B1
100A  C2 03 10
100D  C9
; memcpy --
; Copy a block of memory from one location to another.
;
; Entry registers
;       BC - Number of bytes to copy
;       DE - Address of source data block
;       HL - Address of target data block
;
; Return registers
;       BC - Zero

            org     1000h       ;Origin at 1000h
memcpy      public
            mov     a,b         ;Copy register B to register A
            ora     c           ;Bitwise OR of A and C into register A
            rz                  ;Return if the zero-flag is set high.
loop:       ldax    d           ;Load A from the address pointed by DE
            mov     m,a         ;Store A into the address pointed by HL
            inx     d           ;Increment DE
            inx     h           ;Increment HL
            dcx     b           ;Decrement BC   (does not affect Flags)
            mov     a,b         ;Copy B to A    (so as to compare BC with zero)
            ora     c           ;A = A | C      (are both B and C zero?)
            jnz     loop        ;Jump to 'loop:' if the zero-flag is not set.   
            ret                 ;Return

Uso de pin

O barramento de endereço tem seus próprios 16 pinos e o barramento de dados tem 8 pinos que podem ser usados ​​sem qualquer multiplexação. Usando os dois pinos adicionais (sinais de leitura e gravação), é possível montar dispositivos de microprocessador simples com muita facilidade. Apenas o espaço IO separado, as interrupções e o DMA precisam de chips adicionados para decodificar os sinais dos pinos do processador. No entanto, a capacidade de carga do processador é limitada e até mesmo computadores simples geralmente contêm amplificadores de barramento.

O processador precisa de três fontes de alimentação (−5, +5 e +12 V) e dois sinais de sincronização de alta amplitude não sobrepostos. No entanto, pelo menos a última versão soviética КР580ВМ80А foi capaz de trabalhar com uma única fonte de alimentação de +5 V, o pino de +12 V sendo conectado a +5 V e o pino de −5 V ao aterramento. O processador consome cerca de 1,3  W de energia.

A tabela de pinagem, da documentação que acompanha o chip, descreve os pinos da seguinte forma:

Número do PIN Sinal Modelo Comente
1 A10 Saída Endereço ônibus 10
2 GND - Chão
3 D4 Bidirecional Barramento de dados bidirecional. O processador também define temporariamente aqui o "estado do processador", fornecendo informações sobre o que o processador está fazendo no momento:
  • D0 comando de interrupção de leitura. Em resposta ao sinal de interrupção, o processador está lendo e executando um único comando arbitrário com esta bandeira levantada. Normalmente, os chips de suporte fornecem o comando de chamada de sub-rotina (CALL ou RST), transferindo o controle para o código de tratamento de interrupção.
  • Leitura D1 (nível baixo significa escrita)
  • D2 acessando pilha (provavelmente um espaço de memória de pilha separado foi inicialmente planejado)
  • D3 sem fazer nada, foi interrompido pela instrução HLT
  • D4 gravando dados em uma porta de saída
  • D5 lendo o primeiro byte de uma instrução executável
  • D6 lendo dados de uma porta de entrada
  • D7 lendo dados da memória
4 D5
5 D6
6 D7
7 D3
8 D2
9 D1
10 D0
11 −5 V - A fonte de alimentação de −5 V. Esta deve ser a primeira fonte de alimentação conectada e a última desconectada, caso contrário, o processador será danificado.
12 REDEFINIR Entrada Redefinir. O sinal força a execução de comandos localizados no endereço 0000. O conteúdo de outros registradores do processador não é modificado. Esta é uma entrada inversora (o nível ativo sendo lógico 0)
13 SEGURAR Entrada Solicitação de acesso direto à memória. O processador é solicitado a comutar o barramento de dados e endereços para o estado de alta impedância ("desconectado").
14 INT Entrada Pedido de interrupção
15 φ2 Entrada A segunda fase do sinal do gerador de relógio
16 INTE Saída O processador tem dois comandos para definir o nível 0 ou 1 neste pino. O pino normalmente deve ser usado para controle de interrupção. No entanto, em computadores simples, às vezes era usada como uma porta de saída de bit único para vários fins.
17 DBIN Saída Ler (o processador lê da memória ou porta de entrada)
18 WR Saída Write (o processador grava na memória ou na porta de saída). Esta é uma saída invertida, o nível ativo sendo lógico zero.
19 SINCRONIZAR Saída O nível ativo indica que o processador colocou a "palavra de estado" no barramento de dados. Os vários bits dessa palavra de estado fornecem informações adicionais para oferecer suporte a endereços separados e espaços de memória, interrupções e acesso direto à memória. Este sinal é necessário para passar por uma lógica adicional antes de poder ser usado para escrever a palavra de estado do processador do barramento de dados em algum registro externo, por exemplo, 8238 -System Controller e Bus Driver.
20 +5 V - A fonte de alimentação de + 5 V
21 HLDA Saída Confirmação de acesso direto à memória. O processador muda os dados e os pinos de endereço para o estado de alta impedância, permitindo que outro dispositivo manipule o barramento
22 φ1 Entrada A primeira fase do sinal do gerador de relógio
23 PRONTO Entrada Esperar. Com este sinal é possível suspender o trabalho do processador. Ele também é usado para suportar o modo de depuração passo a passo baseado em hardware.
24 ESPERAR Saída Aguarde (indica que o processador está no estado de espera)
25 A0 Saída Barramento de endereços
26 A1
27 A2
28 12 V - A fonte de alimentação de +12 V. Esta deve ser a última fonte de alimentação conectada e a primeira desconectada.
29 A3 Saída O barramento de endereços; pode mudar para o estado de alta impedância sob demanda
30 A4
31 A5
32 A6
33 A7
34 A8
35 A9
36 A15
37 A12
38 A13
39 A14
40 A11

Chips de suporte

Um fator chave para o sucesso do 8080 foi a ampla gama de chips de suporte disponíveis, fornecendo comunicações seriais, contador / tempo, entrada / saída, acesso direto à memória e controle de interrupção programável, entre outras funções:

Implementação física

O circuito integrado 8080 usa portas nMOS de carga de melhoria não saturada , exigindo tensões extras (para a polarização da porta de carga). Ele foi fabricado em um processo de porta de silício usando um tamanho mínimo de recurso de 6 µm. Uma única camada de metal é usada para interconectar os aproximadamente 6.000 transistores no projeto, mas a camada de polissilício de maior resistência , que exigia voltagem mais alta para algumas interconexões, é implementada com portas de transistor. O tamanho da matriz é de aproximadamente 20 mm 2 .

O impacto industrial

Aplicativos e sucessores

O 8080 é usado em muitos microcomputadores antigos, como o MITS Altair 8800 Computer, Processor Technology SOL-20 Terminal Computer e IMSAI 8080 Microcomputer, formando a base para máquinas que executam o sistema operacional CP / M (o posterior, quase totalmente compatível e mais capaz, o processador Zilog Z80 iria capitalizar sobre isso, com Z80 & CP / M se tornando a combinação dominante de CPU e sistema operacional do período de 1976 a 1983, assim como o x86 e DOS para PC uma década depois).

Mesmo em 1979, após a introdução dos processadores Z80 e 8085, cinco fabricantes do 8080 estavam vendendo cerca de 500.000 unidades por mês a um preço em torno de US $ 3 a US $ 4 cada.

Os primeiros microcomputadores de placa única , como MYCRO-1 e o dyna-micro / MMD-1 (consulte: Computador de placa única ) foram baseados no Intel 8080. Um dos primeiros usos do 8080 foi feito no final dos anos 1970 pela Cubic-Western Data de San Diego, CA em seus sistemas automatizados de coleta de tarifas projetados para sistemas de transporte de massa em todo o mundo. Um dos primeiros usos industriais do 8080 é como o "cérebro" da linha de produtos DatagraphiX Auto-COM (Microficha de Saída de Computador) que pega grandes quantidades de dados do usuário de fita bobina a bobina e os grava em microficha. Os instrumentos Auto-COM também incluem um subsistema completo de corte, processamento, lavagem e secagem de filme automatizado - uma façanha, tanto naquela época quanto no século 21, para tudo ser realizado com sucesso com apenas um microprocessador de 8 bits rodando em um velocidade de clock de menos de 1 MHz com um limite de memória de 64 KB. Além disso, vários dos primeiros jogos de fliperama foram construídos em torno do microprocessador 8080, incluindo Space Invaders , um dos jogos de arcade mais populares já feitos.

Pouco depois do lançamento do 8080, o design concorrente do Motorola 6800 foi apresentado e, depois disso, o derivado MOS Technology 6502 do 6800.

A Zilog introduziu o Z80 , que tem um conjunto de instruções em linguagem de máquina compatível e inicialmente usava a mesma linguagem assembly que o 8080, mas por motivos legais, a Zilog desenvolveu uma linguagem assembly alternativa sintaticamente diferente (mas compatível com o código) para o Z80. Na Intel, o 8080 foi seguido pelo 8085 compatível e eletricamente mais elegante .

Mais tarde, a Intel lançou o compatível com a linguagem assembly (mas não compatível com o binário) 8086 de 16 bits e, em seguida, o 8088 de 8/16 bits , que foi selecionado pela IBM para seu novo PC a ser lançado em 1981. Mais tarde, a NEC criou o NEC V20 (um clone 8088 com compatibilidade de conjunto de instruções Intel 80186 ) que também suporta um modo de emulação 8080. Isso também é suportado pelo V30 da NEC (um clone 8086 aprimorado de forma semelhante). Assim, o 8080, por meio de sua arquitetura de conjunto de instruções (ISA), teve um impacto duradouro na história do computador.

Vários processadores compatíveis com o Intel 8080A foram fabricados no Bloco Oriental : o KR580VM80A (inicialmente marcado como KP580ИK80) na União Soviética , o MCY7880 fabricado pela Unitra CEMI na Polônia , o MHB8080A fabricado pela TESLA na Tchecoslováquia , o 8080APC fabricado por Tungsram / MEV na Hungria e o MMN8080 fabricado pela Microelectronica Bucharest na Romênia .

Em 2017, o 8080 ainda está em produção na Lansdale Semiconductors.

Mudança de indústria

O 8080 também mudou a forma como os computadores foram criados. Quando o 8080 foi introduzido, os sistemas de computador geralmente eram criados por fabricantes de computadores, como Digital Equipment Corporation , Hewlett Packard ou IBM . Um fabricante produziria todo o computador, incluindo processador, terminais e software de sistema, como compiladores e sistema operacional. O 8080 foi projetado para quase qualquer aplicação, exceto um sistema de computador completo. A Hewlett Packard desenvolveu a série HP 2640 de terminais inteligentes por volta do 8080. O HP 2647 é um terminal que executa a linguagem de programação BASIC no 8080. A Microsoft comercializaria como seu produto fundador a primeira linguagem popular para o 8080, e mais tarde adquiriria o DOS para o IBM PC .

Os 8080 e 8085 deram origem ao 8086, que foi projetado como uma extensão compatível com o código-fonte (embora não seja compatível com o binário ) do 8085. Este projeto, por sua vez, gerou posteriormente a família de chips x86 , a base para muitos CPUs em uso hoje. Muitas das principais instruções e conceitos da máquina do 8080 sobrevivem na plataforma x86 amplamente difundida. Os exemplos incluem os registros chamados A , B , C e D e muitos dos sinalizadores usados ​​para controlar saltos condicionais. O código de montagem 8080 ainda pode ser traduzido diretamente em instruções x86; todos os seus elementos centrais ainda estão presentes.

História

Federico Faggin , o criador da arquitetura 8080 no início de 1972, propôs à administração da Intel e pressionou por sua implementação. Ele finalmente obteve permissão para desenvolvê-lo seis meses depois. Faggin contratou Masatoshi Shima do Japão em novembro de 1972, que fez o projeto detalhado sob sua direção, usando a metodologia de projeto para lógica aleatória com porta de silício que Faggin havia criado para a família 4000. Stanley Mazor contribuiu com algumas instruções para o conjunto de instruções.

Shima terminou o layout em agosto de 1973. Após a regulamentação da fabricação NMOS, um protótipo do 8080 foi concluído em janeiro de 1974. Ele tinha uma falha, pois dirigir com dispositivos TTL padrão aumentava a tensão de aterramento porque uma alta corrente fluía para a linha estreita . No entanto, a Intel já havia produzido 40.000 unidades do 8080 sob a direção da seção de vendas antes de Shima caracterizar o protótipo. Foi lançado como exigindo dispositivos Schottky TTL (LS TTL) de baixa potência. O 8080A corrigiu essa falha.

A Intel ofereceu um simulador de conjunto de instruções para o 8080 denominado INTERP / 80. Foi escrito por Gary Kildall enquanto trabalhava como consultor para a Intel.

Patente

Impacto cultural

  • Asteróide 8080 Intel é citado como um trocadilho e um elogio ao nome Intel 8080.
  • O número de telefone publicado da Microsoft, 425-882-8080, foi escolhido porque muitos dos primeiros trabalhos foram feitos neste chip.
  • Muitos dos principais números de telefone da Intel também têm um formato semelhante: xxx-xxx-8080

Veja também

Referências

Leitura adicional

  • Programação em linguagem assembly 8080A / 8085 ; 1ª Ed; Lance Leventhal; Adam Osborne & Associates; 495 páginas; 1978. (arquivo)
  • Linguagem Assembly 8080 / Z80 - Técnicas para Programação Aprimorada ; 1ª Ed; Alan Miller; John Wiley & Sons; 332 páginas; 1981; ISBN  978-0471081241 . (arquivo)
  • Técnicas de interface de microprocessador ; 3rd Ed; Rodnay Zaks e Austin Lesea; Sybex; 466 páginas; 1979; ISBN  978-0-89588-029-1 . (arquivo)
  • Programação em linguagem assembly Z80 e 8080 ; 1ª Ed; Kathe Spracklen; Hayden; 180 páginas; 1979; ISBN  978-0810451674 . (arquivo)

links externos