Códigos de Instrução Códigos de Instrução Códigos de

Propaganda
Códigos de Instrução
Códigos de Instrução
• Palavras de memória
Prof. Eduardo Appel Eng.DSc.
Interpretadas como dados
[email protected]
http:\\vitoria.upf.tche.br\~appel
Interpretadas como código
Indicam uma operação que é
requisitada de um microprocessador
• Disposição dos dados na memória
• Diferenciação entre códigos de instrução e dados
Estudo de caso: Adição Binária
O conteúdo da palavra de memória de endereço 0A30H
deve ser somado ao conteúdo da palavra de memória de
endereço 0A31H, e a soma deverá ser armazenada na
posição de memória de endereço 0A31H.
• Execução de programas
Arquitetura e Organização de
Computadores
1
Arquitetura e Organização de
Computadores
Códigos de Instrução
Códigos de Instrução
Estudo de Caso - Adição Binária
Estudo de Caso - Adição Binária
1) Identificar o endereço da primeira palavra de memória a ser
somada;
2) Transferir o conteúdo desta posição de memória para o
microprocessador;
3) Identificar o endereço da segunda posição de memória a ser
somada;
4) Somar o conteúdo desta posição com o conteúdo da palavra de
memória que foi transferido para o microprocessador no passo
[2];
5) Identificar o endereço da posição de memória onde a soma
deve ser armazenada;
6) Transferir a soma para esta posição de memória;
Arquitetura e Organização de
Computadores
02AFH
Assumidos como contendo dados
binários puros
0A30H
0A31H
0A32H
• O código de instrução que identifica endereço de memória irá
ocupar 3 bytes como segue:
10011100
9CH quando interpretado como um código
de instrução, faz com que as duas próximas
palavras de memória sejam lidas e interpretadas
como um endereço de memória de dados.
3
Arquitetura e Organização de
Computadores
Códigos de Instrução
Códigos de Instrução
Estudo de Caso - Adição Binária
Estudo de Caso - Adição Binária
• A memória do microprocessador será dividida em memória de
dados e memória de programa.
• Vamos supor que o programa deve ser armazenado em
palavras de memória com endereço começando em 0400H
Memória de Programa
Memória de Dados
02AFH
0400H
9C
0A30H
0401H
0A
0A31H
0402H
30
0A32H
0403H
Lê o conteúdo das duas próximas palavras de
memória. Interprete-as como um endereço de
memória de dados
0A30Hé o endereço de memória de dados que
a CPUvai ler.
Arquitetura e Organização de
Computadores
5
2
4
• O passo 2 necessita de que o conteúdo desta palavra de
memória endereçada seja lido e interpretado como dado. Não
há necessidade de que a instrução especifique qual a espécie do
dado contido nesta palavra de memória.
• Vamos assumir que o código binário 01000000 se interpretado
como uma instrução, faz com que o conteúdo da palavra de
memória endereçada seja lido e interpretado como dado.
Memória de Programa
0400H
9C
0401H
0A
0402H
30
0403H
40
Passo 1
Lê o conteúdo da palavra de dado endereçada (0A30H do
passo 1) e interpreta como dado binário puro.
Arquitetura e Organização de
Computadores
6
1
Códigos de Instrução
Códigos de Instrução
Estudo de Caso - Adição Binária
Estudo de Caso - Adição Binária
• O passo 3 é uma repetição do passo 1, com apenas o dado
correspondente ao endereço de memória (0A31H) sendo
diferente. O programa fica então:
• O passo 4 é uma variação do passo 2, em vez dde
simplesmente ler o conteúdo da palavra de memória
endereçada, o dado é somado, usando-se addição binária, ao
dado de memória lido anteriormente. Esta operação é
representada por: 10000000
Memória de Programa
0400H
9C
0401H
0A
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
Memória de Programa
Passo 1
Passo 2
0402H
30
0403H
40
0404H
9C
0405H
0A
0406H
31
0407H
80
0408H
60
30
40
9C
dentro da CPU.
0405H
0A
0406H
31
0407H
80
7
Passo 1
Passo 2
Passo 3
Soma o conteúdo da palavra de memória de dados endereçada
com a palavra de dado armazenada anteriormente na CPU.
Arquitetura e Organização de
Computadores
Códigos de Instrução
Códigos de Instrução
Estudo de Caso - Adição Binária
Estudo de Caso - Adição Binária
Memória de Programa
9C
0402H
0404H
• O passo 5 é uma repetição do passo 3, o endereço da palavra de
memória onde a soma deve ser armazenada, 0A31H já é o mesmo da
mais recente palavra endereçada no passo 3, logo a instrução não
precisa ser repetida para o passo 5. A palavra binária 01100000
quando interpretada como código de instrução faz com que o dado
seja colocado na palavra de memória endereçada mais recentemente.
0A
0A
0403H
Arquitetura e Organização de
Computadores
0401H
9C
0401H
Lê 0A31H, como um endereço de memória de dados para
0407H
0400H
0400H
Passo 1
8
• O programa cria endereços de memória que
identificam palavras de memória que foram
assumidas como contendo dados binários puros.
• Cabe ao programador certificar-se que estas posições
de memória contém realmente dados binários.
• Caso seja cometido algum erro, só o resultado
estranho obtido servirá de alerta.
Passo 2
Passo 3
Passo 4
Armazena a palavra de dado da CPU na palavra de memória endereçada pelo
endereço de memória de dados
9
Códigos de Instrução
10
Códigos de Instrução
Ficam alguns questionamentos:
• Como um microprocessador realiza as operações
requisitadas por um código de instrução?
• Qual lógica externa é necessária para um
microcomputador completar as operações
especificadas num código de instrução?
• Quais as formas de se escrever um programa de
microcomputador?
Arquitetura e Organização de
Computadores
Arquitetura e Organização de
Computadores
Os códigos de instrução são mandados para
a CPU como um meio de identificar a
próxima operação que se deseja que a CPU
realize. Uma seqüência de códigos de
instrução, armazenados na memória,
constitui um programa.
11
Arquitetura e Organização de
Computadores
12
2
Download