Ir ao conteúdo
  • Cadastre-se

Outro WNeander lados do triangulo


Posts recomendados

Olá!

Não estou conseguindo fazer esta questão no WNeander aqui "Crie um programa que verifique os lado de um triângulo e diga, se é um triângulo é isósceles (1), equilátero(2) ou escaleno (3). Para tal o programa deve receber os valores de cada um dos lados do triângulo, e em uma posição de memória deve ser exibido o resulta, ou seja, o número que representa um tipo de triângulo."

Se alguém puder me ajudar eu agradeço.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

 

@Igor Lima Kock     o neander é um processador bem simples que tem 256 bytes de memória e apenas 15 instruções que são  essas :

Código binário      Instrução      Descrição
========================================================================  
   0000               NOP         nenhuma operação
   0001               STA ender   armazena acumulador (store)
   0010               LDA ender   carrega acumulador (load)
   0011               ADD ender   Soma
   0100               OR ender    operação lógica ou
   0101               AND ender   operação lógica e
   0110               NOT         inverte (complementa) acumulador
   1000               JMP ender   desvio incondicional (jump)
   1001               JN ender    desvio condicional (jump on negative)
   1010               JZ ender    desvio condicional (jump on zero)
   1011               JNZ ender   desvio condicional (jump on not zero)
   1100               IN ender    operação  de entrada no dispositivo ender
   1101               OUT ender   operação de saída no dispositivo ender
   1110               LDI imed    carrega o valor imediato imed no acumulador
   1111               HLT         término da execução (halt)

neanderWin_2.thumb.JPG.80f5f7eb42c79f29b3e4571394682932.JPG 

  no editor do neanderWin coloque a variável e em seguida coloca EQU e o endereço, que pode ser qualquer um de zero até 255, mas o melhor e mais comum é colocar a partir do endereço 128, pois a parte inicial é onde será colocado os códigos depois de compilados, pois o texto precisa ser compilado para funcionar, e para compilar clique no botão compilar, e o programa será compilado e gerado códigos hexadecimais e para serem inseridos clique no botão copiar para clipboard , e serão inseridos  no quadro do lado direito da tela , onde tem vários números , a partir de zero e cada variável em um endereço ,depois clique no botão executar e em seguida no botão reset assim o programa começa do inicio , e depois clique no botão passo a passo , e ali ecima onde está escrito próxima instrução quando aparecer IN -> significa que é para informar um valor use o teclado  ( que é um quadrado branco com oito bolinhas vermelhas )  que são bits de um byte, para cima é 1 e para baixo é zero, clicando no bit ele vira para cima ou para baixo, coloque o comando " ORG 0 " para organizar tudo, para entrar um  e no codigo coloque o comando IN 0  para que ele leia o valor, e o melhor para isso é clicando no botão passo a passo , pois se for em executar ele passa direto e não para e nem dá tempo para colocar o valor que se quer, e na hora que chegar no comando IN 0 vá no teclado e coloque o valor que quer e clique no botão ENTRAR e depois continue clicando no botão PASSO A PASSO , para ver o resultado que está no acumulador " A " coloque o comando OUT 0 e irá aparecer no visoR do programa, e para colocar um valor em uma variável, que é um endereço de memória, use o comando STA NOME_DA_VARIÁVEL, e para somar use o comando LDA NOME_DA_VARIÁVEL onde está o primeiro valor e depois coloque o comando ADD NOME_DA_VARIÁVEL onde está o segundo valor a ser somado, com isso o resultado estará armazenado no acumulador " A " e poderá ser visto no visor usando o comando OUT 0,  depois que fizer tudo o que precisar então finaslize o programa usando o comando HLT .   na janela do lado direito estão todos os conteúdos dos 256 bytes de memória do programa, e em cima dessa janela são mostrados os comados em mnemonicos do código que foi escrito, PC é o endereço em hexadecimal que a instrução está, ACC é o valor que está no acumulador " A " ,  Z é o FLAG zero, na hora que fizer comparação se Z  estiver setado é porque é igual, senão é porque não é igual,   N é igual ao Z  porém verifica se é maior ou menor.  e embaixo do lado direito no quadrado de endereço pode ser colocado um valor de zero ate 255, a partir de onde será inserido os códigos do programa escrito, assim que clicar no botão compilar.  e o resultado será exibido no visor no sistema hexadecimal  .

    o que você não está conseguindo ?  se já tiver um código sobre esse exercício , poste ele aqui para vermos como está e em que podemos ajudar   .
 

Link para o comentário
Compartilhar em outros sites

19 minutos atrás, devair1010 disse:

 

@Igor Lima Kock     o neander é um processador bem simples que tem 256 bytes de memória e apenas 15 instruções que são  essas :


Código binário      Instrução      Descrição
========================================================================  
   0000               NOP         nenhuma operação
   0001               STA ender   armazena acumulador (store)
   0010               LDA ender   carrega acumulador (load)
   0011               ADD ender   Soma
   0100               OR ender    operação lógica ou
   0101               AND ender   operação lógica e
   0110               NOT         inverte (complementa) acumulador
   1000               JMP ender   desvio incondicional (jump)
   1001               JN ender    desvio condicional (jump on negative)
   1010               JZ ender    desvio condicional (jump on zero)
   1011               JNZ ender   desvio condicional (jump on not zero)
   1100               IN ender    operação  de entrada no dispositivo ender
   1101               OUT ender   operação de saída no dispositivo ender
   1110               LDI imed    carrega o valor imediato imed no acumulador
   1111               HLT         término da execução (halt)

neanderWin_2.thumb.JPG.80f5f7eb42c79f29b3e4571394682932.JPG 

  no editor do neanderWin coloque a variável e em seguida coloca EQU e o endereço, que pode ser qualquer um de zero até 255, mas o melhor e mais comum é colocar a partir do endereço 128, pois a parte inicial é onde será colocado os códigos depois de compilados, pois o texto precisa ser compilado para funcionar, e para compilar clique no botão compilar, e o programa será compilado e gerado códigos hexadecimais e para serem inseridos clique no botão copiar para clipboard , e serão inseridos  no quadro do lado direito da tela , onde tem vários números , a partir de zero e cada variável em um endereço ,depois clique no botão executar e em seguida no botão reset assim o programa começa do inicio , e depois clique no botão passo a passo , e ali ecima onde está escrito próxima instrução quando aparecer IN -> significa que é para informar um valor use o teclado  ( que é um quadrado branco com oito bolinhas vermelhas )  que são bits de um byte, para cima é 1 e para baixo é zero, clicando no bit ele vira para cima ou para baixo, coloque o comando " ORG 0 " para organizar tudo, para entrar um  e no codigo coloque o comando IN 0  para que ele leia o valor, e o melhor para isso é clicando no botão passo a passo , pois se for em executar ele passa direto e não para e nem dá tempo para colocar o valor que se quer, e na hora que chegar no comando IN 0 vá no teclado e coloque o valor que quer e clique no botão ENTRAR e depois continue clicando no botão PASSO A PASSO , para ver o resultado que está no acumulador " A " coloque o comando OUT 0 e irá aparecer no visoR do programa, e para colocar um valor em uma variável, que é um endereço de memória, use o comando STA NOME_DA_VARIÁVEL, e para somar use o comando LDA NOME_DA_VARIÁVEL onde está o primeiro valor e depois coloque o comando ADD NOME_DA_VARIÁVEL onde está o segundo valor a ser somado, com isso o resultado estará armazenado no acumulador " A " e poderá ser visto no visor usando o comando OUT 0,  depois que fizer tudo o que precisar então finaslize o programa usando o comando HLT .   na janela do lado direito estão todos os conteúdos dos 256 bytes de memória do programa, e em cima dessa janela são mostrados os comados em mnemonicos do código que foi escrito, PC é o endereço em hexadecimal que a instrução está, ACC é o valor que está no acumulador " A " ,  Z é o FLAG zero, na hora que fizer comparação se Z  estiver setado é porque é igual, senão é porque não é igual,   N é igual ao Z  porém verifica se é maior ou menor.  e embaixo do lado direito no quadrado de endereço pode ser colocado um valor de zero ate 255, a partir de onde será inserido os códigos do programa escrito, assim que clicar no botão compilar.  e o resultado será exibido no visor no sistema hexadecimal  .

    o que você não está conseguindo ?  se já tiver um código sobre esse exercício , poste ele aqui para vermos como está e em que podemos ajudar   .
 

Eu sei como o neander funciona meu amigo, eu não sei como começar o exercício em si porque o básico eu sei.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

48 minutos atrás, devair1010 disse:

@Igor Lima Kock    Ok ,    mas você já fez algum código nele alguma vez  ?  ,   

   e para saber o tipo do triangulo informado os lados ,  compare os valores , e se for igual   jz e compare o outro .

Já fiz alguns códigos nele sim mas era coisa mais básica tipo soma, subtração, multiplicação e essas coisas o que o meu professor deu

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Igor Lima Kock     pode fazer assim :

1 - criar 1 variável ( x )  e referenciar ela com um endereço de memória
2 - pegar o valor 1 no teclado binário
3 - armazenar o valor do Acumulador A na variável ( x )
4 - pegar o valor 2 no teclado binário
5 - Subtrair do Acumulador A , a variável ( x )
6 - dar um pulo relativo se o resultado não for igual a zero ( JNZ )  para um label especificado antes
    esse tal label é um nome qualquer seguido de dois ponto
7 - se ficou , é porquê não pulou , e o resultado é igual a zero
    significando que a comparação dos dois valores são iguais
    ai tem a resposta e agir de acordo , por exemplo carregar o Acumulador A
    com o valor 03 e mostrar o resultado no Visor do neanderWin , com o comando OUT 0
    finalizar o programa com o comando HLT
8 - coloque aquele label aqui , e se veio até aqui é porquê o resultado da sutração não
    é igual a zero , aí tens o resultado da comparação , então agir de acrdo também
    por exemplo carregue o Acumulador A com o valor 04 , e mostrar o resultado no Visor OUT 0
    finalizar o programa
=================================================================================================
com isso se no final da execusão do programa aparecer   :
o valor 03 você saberá que os dois números     são iguais
o valor 04 você saberá que os dois números não são iguais

=================================================================================================

 

Link para o comentário
Compartilhar em outros sites

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!