Princípio de Funcionamento de um
Princípio de Funcionamento de um
Microprocessador
Microprocessador
Prof. Filippo Valiante Filho
Prof. Filippo Valiante Filho
http://prof.valiante.info
Estrutura do Computador (i)
Computador:
✔
CPU (Central Processing Unit)
✔
Sistema de Armazenamento (Memórias)
✔
Sistema de E/S
Estrutura do Computador (ii)
✔
CPU
✔
ULA – Unidade Lógica e Aritmética
✔
Registradores
✔
unidade de armazenamento mais básica
✔
Unidade de Controle
✔
Controla a perfeita execução das sequências de instruções (programas),
garantindo o sincronismo (tempo) e a ordenação correta de cada passo; bem
como, interpretando e gerando os sinais de controle externos à CPU
Estrutura do Computador (iii)
✔
Sistema de Armazenamento (Memórias)
✔
Memória Principal (RAM) → Instruções e Dados
✔
Mídias magnéticas e ópticas, memória Flash, memória Cache...
✔
Sistema de E/S
✔
Módulo de E/S / Controlador / Interface
Estrutura do Computador (iv)
✔
Barramentos
✔
Meio de comunicação compartilhados
✔
conjunto de sinais ou, fisicamente, como um agrupamento de trilhas em uma placa
de circuito impresso (PCI, ou PCB no inglês). Obviamente esses sinais e trilhas
conectam os diversos circuitos e dispositivos que fazem parte do computador e, em
geral, são vias de comunicação compartilhadas. Cada barramento segue uma
especificação lógica, elétrica e mecânica adequadas ou, em outras palavras, tipos de
sinais, velocidade, níveis de tensão, padrão de pinagem dos circuitos integrados
(“chips”) e dos conectores, etc.
Estrutura do Computador (v)
Barramentos:
✔Dados
✔Endereço
✔Controle
✔Interrupção
✔Leitura / Escrita
✔Reset
✔Clock (Relógio)
Estrutura do Computador (vi)
✔
Clock (Relógio)
___|¯¯¯|___|¯¯¯|___|¯¯¯|
___|¯¯¯|
___|¯¯¯
1 ciclo
✔
Frequência (f) = ciclos por segundo [Hz]
✔
1 Hertz = 1 ciclo por segundo
✔
Período (T) = tempo de um ciclo [s]
✔
f = 1 / T
✔
P.ex. para f = 2,0 GHz
Estrutura do Computador (vii)
Estrutura do Computador (viii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário Acumulador H L PC Stack Pointer IR Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L at ch – A 0: 15 B uf fe r / L at ch – D 0 :7CPU
WriteRead Clock Reset
Leitura B ar ra m en to d e E nd er e ço s Escrita B ar ra m en to d e D ad os Reg. de endereços Reg. de instrução Contador de programa Ponteiro de pilha Barramento de Controle INT End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)
Estrutura do Computador (ix)
Largura dos Barramentos (quantidade de vias)
✔
Endereços:
✔
16 bits → 2
16 =
65536 = 64k posições (endereços)
✔
Dados:
✔
Cada posição armazena 8 bits = 1 byte (B)
Capacidade (limite) da Memória do Computador:
Estrutura da CPU (i)
ULA
Unidade de Controle e Decodificador de Instrução (parte da UC)
Registradores:
✔
Acumulador (AC)
✔
Registrador Temporário / Auxiliares
✔
Contador de Programa - Program Counter (PC) ou Instruction Pointer (IP)
✔Registrador de Instrução – Instruction Register (IR)
✔
Registrador de Endereços (H, L)
✔
Ponteiro de pilha – Stack Pointer (SP)
✔Registrador de Status / PSW
✔
MAR (Memory Address Register) / Latch de Endereços
✔MBR (Memory Buffer Register) / Latch de Dados
Estrutura da CPU (ii)
Registradores mínimos para o funcionamento de um computador:
✔
PC e IR → controle da execução do programa
✔
MAR e MBR → comunicação com a memória
✔
AC e um Reg Auxiliar → para o funcionamento da ULA
✔
Para a ULA, dois ou três indicadores binários também seriam
O Programa
✔
Programa é uma sequência de instruções
✔
Instrução:
✔
Código de operação (op code) → o que deve ser feito
com os...
✔
Operandos (dados)
✔
Dados podem ser números, caracteres, endereços ou
bits.
Níveis de Linguagens de
Programação
Compilador
Montador
(Assembler)
Linguagem de Alto Nível
Linguagem de Montagem
(Assembly)
Linguagem de Máquina
total = 10 + 5 + 18
LOAD
0A
ADD
05
ADD
12
STORE 2000
10000110 00001010
10001011 00000101
10001011 00010010
10110111 00100000
00000000
Formatos de Instrução
Tamanho em Bytes
1
2
3
Formato 1 (valores):
Cód. de Operação
Valor
Formato 2 (endereços):
Cód. de Operação
Endereço
Os 8 bits do op code possibilitam
Programa Exemplo (i)
Linguagem de Montagem (Assembly) LOAD 0A ADD 05 ADD 12 STORE 2000 Linguagem de Máquina End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001Assembler
Programa Exemplo (ii)
Linguagem de
Linguagem de
Montagem
Máquina
(Assembly)
End.
Cont.
(hexa)
(hexa)
Comentários
Memória de
Programa
Carrega o acumulador
LOAD
0A
0000
86
Valor a ser carregado
0001
0A
Soma o valor com o conteúdo do acumulador
ADD
05
0002
8B
Valor a ser somado
0003
05
Soma o valor com o conteúdo do acumulador
ADD
12
0004
8B
Valor a ser somado
0005
12
Armazena o conteúdo do acumulador no endereço de memória
STORE
2000
0006
B7
Parte alta do endereço (8 bits mais significativos)
0007
20
Parte baixa do endereço (8 bits menos significativos)
0008
00
0009
...
...
Memória de
Dados
Posição onde o resultado será armazenado
2000
2001
...
...
End.
Cont.
(hexa)
(hexa)
Ciclo de Instrução (i)
Ciclo de Instrução (ii)
Cálculo de endereço de instrução Busca de instrução Decodificação de instrução Cálculo de endereço do operando Busca de operando Execução da operação Cálculo de endereço do resultado Armazena-mento do resultado Múltiplosoperandos Múltiplosresultados
Retorno de strings ou vetores Instrução completada,
Ciclo de Instrução (iii)
Cálculo de endereço de instrução Busca de instrução Decodificação de instrução Cálculo de endereço do operando Busca de operando Execução da operação Cálculo de endereço do resultado Armazena-mento do resultadoCiclo de Execução
Ciclo de Busca
Operações
Internas ou
Externas à CPU
Operações
Internas da
CPU
Registrador Memória Periférico (Entrada)Memória RegistradorMemória
Execução do Programa (i)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário Acumulador H L PC 0000 Stack Pointer IR Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
Leitura B ar ra m en to d e E nd er eç o s Escrita B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha
0000
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)Execução do Programa (ii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário Acumulador H L PC 0001 Stack Pointer IR 86 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha86
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)Execução do Programa (iii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário Acumulador H L PC 0001 Stack Pointer IR 86 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha Leitura B ar ra m en to d e E nd er eç o s Escrita
0001
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)Execução do Programa (iv)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário Acumulador 0A H L PC 0002 Stack Pointer IR 86 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha B ar ra m en to d e E nd er eç o s0A
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)Execução do Programa (v)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário Acumulador 0A H L PC 0002 Stack Pointer IR 86 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha Leitura B ar ra m en to d e E nd er eç o s Escrita End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)
0002
Execução do Programa (vi)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário H L PC 0003 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha8B
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 0AExecução do Programa (vii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário Acumulador 0A H L PC 0003 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha Leitura B ar ra m en to d e E nd er eç o s Escrita End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)
0003
Execução do Programa (viii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 05 H L PC 0003 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha05
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 0AExecução do Programa (ix)
ULA Registrador de Status Somador 0A + 05 Complem. Deslocador Registrador Temporário 05 H L PC 0004 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
Leitura B ar ra m en to d e E nd er eç o s Escrita B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 0F
Execução do Programa (x)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 05 Acumulador 0F H L PC 0004 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha B ar ra m en to d e E nd er eç o s End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)0004
Execução do Programa (xi)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 05 H L PC 0005 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
Leitura B ar ra m en to d e E nd er eç o s Escrita B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha
8B
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 0AExecução do Programa (xii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 05 Acumulador 0A H L PC 0005 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha B ar ra m en to d e E nd er eç o s End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)0005
Execução do Programa (xiii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 H L PC 0005 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
Leitura B ar ra m en to d e E nd er eç o s Escrita B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha
12
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 0FExecução do Programa (xiv)
ULA Registrador de Status Somador 0F + 12 Complem. Deslocador Registrador Temporário 12 H L PC 0006 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 21Execução do Programa (xv)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 Acumulador 21 H L PC 0006 Stack Pointer IR 8B Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha Leitura B ar ra m en to d e E nd er eç o s Escrita End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)
0006
Execução do Programa (xvi)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 H L PC 0007 Stack Pointer IR B7 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilhaB7
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 21Execução do Programa (xvii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 Acumulador 21 H L PC 0007 Stack Pointer IR B7 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha Leitura B ar ra m en to d e E nd er eç o s Escrita End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)
0007
Execução do Programa (xviii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 H 20 L PC 0008 Stack Pointer IR B7 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha20
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 21Execução do Programa (xix)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 Acumulador 21 H 20 L PC 0008 Stack Pointer IR B7 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha Leitura B ar ra m en to d e E nd er eç o s Escrita End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)
0008
Execução do Programa (xx)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 H 20 00L PC 0008 Stack Pointer IR B7 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha00
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 21Execução do Programa (xxi)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 Acumulador 21 H 20 00L PC 0008 Stack Pointer IR B7 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o Unidade de Controle B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
WriteRead Clock Reset INT
Relógio Cristal Alimentação Inicialização Interrupção
B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha Leitura B ar ra m en to d e E nd er eç o s Escrita End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa)
2000
Execução do Programa (xxii)
ULA Registrador de Status Somador Complem. Deslocador Registrador Temporário 12 H 20 00L PC 0008 Stack Pointer IR B7 Decodificador de Instrução B ar ra m en to In te rn o B ar ra m en to In te rn o B uf fe r / L a tc h – A 0: 15 B uf fe r / L at ch – D 0: 7CPU
B ar ra m en to d e E nd er eç o s B ar ra m e nt o d e D ad os Reg. de endereços Reg. de instrução Contador de programa Apontador de pilha21
End. Cont. (hexa) (hexa) Memória de Programa 0000 86 0001 0A 0002 8B 0003 05 0004 8B 0005 12 0006 B7 0007 20 0008 00 0009 ... ... Memória de Dados 2000 2001 ... ... End. Cont. (hexa) (hexa) Acumulador 21 21Execução do Programa (xxiii)
Controle Registradores
READ WRITE End. Dados PC RI AC T H L
0000 (Inicialização) 0000 LOAD 0A In s tr u ç õ e s X 86 86 0001 0001 X 0A 0A 0002 0002 ADD 05 X 8B 8B 0003 0003 X 05 05 0F 0004 0004 ADD 12 X 8B 8B 0005 0005 X 12 12 21 0006 0006 STORE 2000 X B7 B7 0007 0007 X 20 20 0008 0008 X 00 00 2000 X Latches e Barram entos
Te
m
po
No 8080/8085
✔
O código que corresponde ao programa exemplo Utilizando
o assembly real do 8080/8085 é o seguinte:
MVI
A,0Ah
; A ← 0Ah
ADI
05h
; A ← A + 05h
ADI
12h
; A <- A + 12h
LXI
H,2000h
; H ← 20h e L ← 00h
MOV
M,A
; (H,L) ← A
✔
O código de máquina (em hexadecimal) correspondente é:
3E 0A
C6 05
Referências Bibliográficas
✔
CARVALHO, Claudio Sergio da Rós de. Microprocessador 8085. 2ª ed. Editora da
Unicamp. 1990.
✔
MALVINO, Albert P. Microprocessadores e Microcomputadores. Editora
McGraw-Hill. 1985.
✔
STALLINGS, William. Arquitetura e Organização de Computadores. 8ª edição.
Pearson Education. 2010.
✔
TANENBAUM, Andrew S. Organização Estruturada de Computadores. 4ª edição.
LTC Editora. 2001.
✔
TOKHEIM, Roger L. Introdução aos Microprocessadores (Coleção Schaum).
Editora McGraw-Hill. 1985.
✔