Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Micilini Roll

exercicios instrução de processadores!

Recommended Posts

Pessoal seguinte alguem pode me ajudar nestes 2 exercicios nao estou entendendo de maneira alguma!

 

 

 

1.

Considere uma máquina hipotética com as seguintes características:

Instruções

0001 ->Carrega AC da memória
0010-> Armazena AC na memória
0101->Adiciona ao acumulador AC o valor da memória
0011 ->Carrega AC (acumulador) do dispositivo de I/O
0111 -> Armazena AC no dispositivo de I/O

  • Endereço de 12 bits identifica um dispositivo externo sendo 4 bits para código da operação e os demais para endereço
  • O dispositivo 5 fornece o valor 3
  • PC (program counter) inicial contém o valor 300
  • O acumulador AC está inicialmente vazio
  • O endereço 50h possui o valor 2 armazenado
  • Programa em execução


Endereço instrução
300 0011 00000101
301 0101 01010000
302 0010 01100000

A primeira instrução executada é:

 

Resposta correta é: Carrega o valor 3 no acumulador AC

 

ok mas como se chegou a isso?! sera que voce podem me explicar detalhadamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte pessoal com ajuda do professor da faculdade encontrei a resposta! seguinte a primeira coisa que voce deverá analisar é a instrução dada para o exercicio! que é:

 

 

PC (program counter) inicial contém o valor 300

 

entao a primeira linha de comando que o processador ira receber sera o endereço 300 e na nossa tabelinha temos na linha que começa com 300 os valores:

 

 

Endereço instrução
300 0011 00000101

 

agora depois do 300 iremos analisar o segundo comando binario que no caso é o 0011,de acordo com os dados dos exercicios este codigo binario manda executar a seguinte função:

 

 

0011 ->Carrega AC (acumulador) do dispositivo de I/O

 

(como dito no exercicio que: O acumulador AC está inicialmente vazio,nao teremos problemas)

 

entao continuando ele diz que carrega o acumulador do dispositivo de i/o(estes dispositios de i/o sao os mesmos de e/s(entrada e saida) como mouse teclado usb impressora pen drive....) so que temos outro comando ! acompanhado do 0011 que é o 00000101 que indica um numero, mais que numero é esse? se formos nesse site: http://www.calculadoraonline.com.br/conversao-bases e digitar este numero na area de binario verá que o seu numero representado em hexadecimal é igual a 5! entao juntando isso tudo podemos concluir que o programa realizará:

 

 

Inicie a instrução do endereço que começa com 300,depois pegue este endereço e leia a segunda instrução que é carregar o dispositivo que esta conectado no computador, O dispositivo que você ira pegar sera o dispositivo 5,pegue o valor deste dispositivo e armazene no acumulador!

 

e como dito no exercicio o dispositivo 5 tera o valor igual a 3,como podemos ver abaixo:

 

 

  • O dispositivo 5 fornece o valor 3

 

entao podemos concluir que:

 

Carrega o valor 3 no acumulador AC

 

ok segunda pergunta!

 

2-O valor final armazenado no acumulador sera?

a)2

b)3

c)5

 

pois bem para isso deveremos realizar o outro endereço! como o endereço 300 ja foi inicializado e supostamente finalizado,nos iremos agora inicializar o segundo endereço depois do 300 que nao caso sera o :

 

 

Endereço instrução
301 0101 01010000

 

e vamos realizar o mesmo procedimento! iremos pegar o valor binario depois do 301 que no caso é o 0101,sendo que este codigo binario nada mais é do que uma instrução realizada pelo processador que de acordo com o exercicio a instrução é:

 

 

0101->Adiciona ao acumulador AC o valor da memória

 

ok mas que memoria sera esta? para isso deveremos analisar o outro comando que vem depois do 0101 que é o 01010000 , se analisarmos naquele mesmo website vera que o seu valor em hexadecimal equivale a 50,e de acordo com o exercicio vemos que ali ele disponibiliza um valor chamado 50h que analisando sera o valor da memoria,entao:

 

 

O endereço 50h possui o valor 2 armazenado

 

e como dito anteriormente ira ser adicionado no acumulador o valor de 2,maaaas vimos que no exercicio 1 o acumulador ja possue um valor que é 3! entao se ira adicionar mais 2 entao iremos realizar o calculo:

 

 

2+3 = 5

 

entao podemos concluir que o valor final armazenado no acumulador ac é de 5! resposta letra c!

mas e as outras instruções como o 302? visto que a instrução do 302 é igual a 0010-> Armazena AC na memória..entao se ele armazena na memoria este valor nao será mais alterado!!! entao podemos garantir que o valor final é igual a 5!

 

3-Em que endereço sera armazenado o valor 5 que esta no AC?

 

agora sim podermos ir para a nossa ultima instrução que é:

 

 

Endereço instrução
302 0010 01100000

 

como,tanto 300 e 301 foram inicializados e acabamos de finaliza-los so nos resta o 302,entao analisando o valor depois do 302 nos temos o comando: 0010 que de acordo com o exercicio ele irá:

 

 

Armazena AC na memória

 

ok,mas em que memoria?! para isso deveremos analisar o segundo comando que vem depois do codigo 0010,que no caso é o -> 01100000 e novamente se voces foram no site que coloquei acima e converter de binario para hexadecimal verá que este valor representa o valor 60. entao podemos concluir que!

 

o endereço que armazena o valor ac é chamado de 60! entao no endereço 60 podemos encontra o valor de 5!

 

e finalmente a ultima questão!

 

que instrução inicial teriamos que acrescentar ao programa para que AC fosse iniciado com o conteudo de endereço 32h?

 

simples! para isso deveriamos alterar a informação do exercicio!

 

DE:

 

 

302 0010 01100000 = codigo 01100000 indica 60 em hexadecimal!

 

PARA:

 

 

302 0010 00110010 = codigo 00110010 indica 32 em hexadecimal!

 

e pronto exercicio resolvido bate palma uool! complicado ne arquitetura de computadores agora ja deu uma clareada! :hug:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.