Ir ao conteúdo

Posts recomendados

Postado

@Jonathas Braun    não precisa escrever , não , esse label é para ajudar na hora que você estiver fazendo o código , assim você estabelece um label qualquer e quando for inserir os dados no neander  , no lugar desse Label você pula para o próximo endereço ., e vai assim até o final fazendo a conversão dos código Mnemômicos pelos respectivos números deles , como está escrito no neander , e aí você volta lá no endereço que você deixou sem colocar nada e então coloca o endereço de onde estará o Label criado , e que tem aquele bloco de instruções , então você olha lá na aba programa do neander e vê qual o endereço desse bloco de instruções e volta lá em cima e coloca esse endereço lá   .

e aqueles números que coloquei  , que tem os endereços e os valores , basta você ir inserindo eles nessas mesmos endereços lá na aba programa no neander  . e depois clicar em executar / zerar pc / F9 , e o código será executado e você verá lá na aba Dados no endereço qual valor foi colocado lá  e que é a resposta  .

 

 

adicionado 6 minutos depois

@Jonathas Braun   você não precisa saber , quem tem que saber é o programa ,  você apenas vai criar as instruções que fará alguma coisa que você queira , de acordo com cada possibilidade , colocando elas em um endereço que você quiser , mas geralmente vai se inserindo na ordem crescente , é o mais adequado , e então o compilador , que é um programa criado por alguém aí , vai mandar uma informação para o processador do computador , e esse sim é que fará tal tarefa pedida .

Postado

@Jonathas Braun    se você fez o código que tem todas as possibilidades , e inseriu esses códigos lá no neander , a sua parte estará pronta , aí a tarefa será do programa , que resolverá , e o que ele precisa fazer é verificar se o número é zero , ou se o número é negativo , ou se o número é positivo , e assim que ele decidir isso ele vai pular por si mesmo para o bloco de instruções  que você já colocou previamente lá nos endereços , e fará o que está ali , então nesse código que postei , se  o programa , decidir que o número no endereço 128 é zero ele vai pular para o endereço 24 desse código , onde ele verá as intruções que colocam esse valor lá no endereço 130 como está no enunciado .

Postado

@Jonathas Braun    não pula , quem faz isso é o programa , como eu disse você cria os códigos para cada possibilidade e coloca eles nos endereços ,  e que o programa decidir ele é quem vai para tal posição e para a executar as instruções que você já colocou para ele fazer ,  como ali no código que postei , você pode ver esse blocos de instruções , eles estão até separados com uma linha vaga entre eles , e eu não sei qual a resposta , mas coloquei os códigos para todas elas ,  e certeza que ele vai decidir por fazer um desses códigos , ou o L1 ou o L2 e até se não for para nenhum desses dois ele não pulará e continuará seguindo a execução na ordem crescente dos endereços e aí fará aquelas instruções que deixei logo depois do JN . 

Postado

@Jonathas Braun    ora você cria um programa de computador , para que ele resolva as situações , facilmente para as outras pessoas , sem que elas precisem saber o valor de um número ,  por exemplo , e já que as pessoas vão pagar para ter essa comodidade ,  no mínimo quem criou o programa deve atender esse requerimento das pessoas ,  e isso dará sim , um trabalhão para que funcione do jeito certo , pois é você ,  programador , que precisa instruir o computador através do programa , dizendo para ele o que deve fazer , em cada situação , pois ele , por si só , não sabe de nada ,  e é preciso que digam a ele cada passo a realizar , e assim você imagina o que pode acontecer , de acordo com o propósito do programa , e cria as instruções para cada possibilidade e coloca elas a disposição do computador , e o programa decide qual das instruções vai realizar , através de decisões feitas por comparações ,  e nesse neander , as instruções são bem ao nível da máquina , por isso mas trabalho , mas já se fosse um programa de mais alto nível , e aqui não quer dizer que alto nível seja melhor , mas apenas que está mais acima do nível da máquina e mais próximo de como entendemos , seria bem mais fácil , por exemplo , essa comparação tão difícil e trabalhosa , se tornaria em apenas uma palavrinha ,  assim :

A = um numero qualquer
if ( A == 0 ) coloca em uma variavel , pois na linguagem c não se pode acessar diretamente os endereços de memória
if ( A <  0 ) coloca em outra variável 
if ( A >= 0 ) coloca em outra variável           

mas a ideia é a mesma , para cada possibilidade uma instrução do que fazer .

Postado

@Jonathas Braun @Jonathas Braun    o 4 , já postei a resposta lá em cima na outra  página ,  tô vendo que você está meio perdido , mas é assim mesmo você nunca fez nada disso ,  e ninguém nasce sabendo ,  só com tempo você passará a entender  o funcionamento dos programas de computador ,  e uma coisa principal é saber que o compilador ,  neander ou qualquer outro , vai começar a executar os códigos , do começo para o final e da esquerda para a direita , ele vai ler o que está escrito  , se a instrução for válida executará , e passará para a próxima , indo assim até o final , vou colocar aqui os números que você deve inserir na aba programa do neander , 

no endereço         coloque esse número

   0  --------------------->     32

  1   --------------------->   129

   2   --------------------->    96

   3   --------------------->   48

   4   ---------------------> 250

   5  --------------------->    16

   6  --------------------->   251

   7   --------------------->   32

   8   ---------------------> 129

   9   --------------------->   48

  10   ---------------------> 151

  11  --------------------->  144

  12   --------------------->   23

  13  --------------------->    32

  14   --------------------->  128

  15   --------------------->    48

  16   --------------------->    51

  17   --------------------->    60

  18   --------------------->    23

  19  --------------------->    32

  20   --------------------->  128

  21  --------------------->    28 

  22  --------------------->    25 

  23   --------------------->   32

  24   --------------------->   29

  25  --------------------->    16

  26   --------------------->  129

  27  --------------------->    240

Postado

@Jonathas Braun    bom , testei e funcionou , só ficou faltando definir o endereço do Label L1 , no seu código você colocou 11 , mas esse endereço é o mesmo dessa instrução e isso se tornará um Loop infinito travando a execução do programa ali nesse ponto e ele não fará mais nada , então você precisa colocar ali no lugar daquele número onze um outro de um endereço onde você colocará as instruções para ele fazer , que seria carregar o conteúdo do endereço 129 e colocar no 130 , pois se ele pulou para lá é porque o número em 128 é menor que o do 129 ,  e ali no endereço 14 o certo seria 128 , pois se ele não pulou e ficou é porque o número no endereço 128 é maior , então creio que seu código poderia ser assim como nessa imagem  :

590956242_WNeandermaioremenor.jpg.51731c179c9ad3fd632cc36dcc0f4d29.jpg

 

os valores nos endereços 128 e 129 , você pode colocar qualquer um de zero até 255 , no inicio antes de executar , e o do endereço 250 precisa ser o valor 1 mesmo , e após zerar pc e executar o resultado estará no endereço  130 .

Postado

@Jonathas Braun      essa 6 é praticamente igual a 4 , você vai prepara aquela máscara para um dos dois números , pode ser o 128 , e fazer a comparação ,com o outro numero e se z estiver setada pula para um Label onde precisa ter as instruções para carregar o valor de um deles , já que são iguais , e coloca-lo no endereço 131 , mas se depois da comparação  não pular para aquele Label , é porque não são iguais , então fazer mais uma comparação ,carregando o valor do endereço 129 , e se a flag N estiver setada é por que este é menor então pula para outro Label , onde vai carregar o valor do endereço 129 e colocar em 131 e depois carregar o valor do endereço 128 e colocarem 132 .
 

Postado

@Jonathas Braun     essa parte de números negativos ainda não aprendi muito não ,  pelo que já vi  ,  para representar os números negativos no computador usa-se um bit de sinal , no byte  , e assim os números de zero até 127 são considerados positivos , pois o bit 7 desses números é igual a zero , então se o  bit 7 = 0 o número é positivo , e os que vão de 128 até 255 são negativos , pois tem o bit 7 = 1 ,  e para saber se um número qualquer é zero , você adicionar esse tal número com o valor zero , pois   0 + 0 = 0 , e se é igual a zero a flag Z estará setada ,   mas para saber se é negativo ainda não consegui resolver , 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!