Micilini Roll 49 Denunciar post Postado Junho 4, 2013 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ória0010-> Armazena AC na memória0101->Adiciona ao acumulador AC o valor da memória0011 ->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ção300 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
Micilini Roll 49 Denunciar post Postado Junho 7, 2013 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ção300 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ção301 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ção302 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