Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
EduhMarques

Assembly calculadora com o Neander

Recommended Posts

Boa tarde, Gente, preciso fazer um calculadora com 4 operações com o novo neander, "NeanderWin", porém, estou muito perdido, não consigo encontrar nada na internet, alguém poderia me dar uma ideia de como começar, por favor? Não sei se eu não procurei direito ou esse novo neander é mais chatinho mesmo..  Desde já, agradeço.. 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

   Instrução         Descrição
      NOP        nenhuma operação
      STA ender  armazena acumulador (store)
      LDA ender  carrega acumulador (load)
      ADD ender  Soma
      OR ender   operação lógica “ou”
      AND ender  operação lógica “e”
      NOT        Inverte (complementa) acumulador
      JMP ender  desvio incondicional (jump)
      JN ender   desvio condicional (jump on negative)
      JZ ender   desvio condicional (jump on zero)
      JNZ ender  desvio condicional (jump on not zero)
      IN ender   operação  de entrada no dispositivo “ender”
      OUT ender  operação de saída no dispositivo “ender”
      LDI imed   carrega o valor imediato imed no acumulador
      HLT        término da execução (halt)

    no editor do neander 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, cada variável em um endereço, depois coloque o comando " ORG 0 " para organizar tudo, para entrar um valor use o teclado  ( um quadrado branco com oito bolinhas vermelhas )  que são bits de um byte, a seta  para cima é 1 e para baixo é zero, clicando no bit a setinha vira para cima ou para baixo, e no código coloque o comando IN 0  para que ele leia o valor, e o melhor para é 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 viso 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 finalize 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 mnemônicos 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.
  aqui um texto de um código para exemplo, copie e cole no editor do neander depois vá clicando no botão passo a passo : 

;---------------------------------------------------
; Programa:  soma dois valores
; Autor:
; Data:   
;---------------------------------------------------
X EQU 128  ; Endereço da variável X definido como 128
Y EQU 129  ; Endereço da variável Y definido como 129

ORG 0   ; organiza tudo
IN 0    ; le o teclado, o zero não pode ser mudado e coloca o valor no acumulador A
STA X   ; guarda o valor que está no acumulador A na variável X
IN 0    ; le o teclado, o zero não pode ser mudado e coloca o valor no acumulador A
STA Y   ; guarda o valor que está no acumulador A na variável Y
LDA X   ; acumulador A recebe conteúdo de X
ADD Y   ; conteúdo de A é somado ao conteúdo de Y
OUT 0   ; mostra o resultado, que está no acumulador, no visor,não pode mudar o zero 
HLT     ; processador pára e finaliza o programa 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Muito obrigado, de verdade mesmo.. Eu estava bem perdido, mas tu me ajudou muito.. Obrigadão mesmo.. te devo uma... valeu.. abração. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×