Ir ao conteúdo
  • Cadastre-se

jao indio

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. o codigo foi montado pelo simulador NeanderWin, ele possui alguns mecanismos a mais que o WNeander, porém a aplicaçao do codio eh a mesma, pois possui as mesmas instruçoes. ====================================================================================== org 0 ;------------------------------------------------ PARTE 1----------------------------------------------------- LDA a ;se o numero for positivo sinal(s1 ou s2)=0 do contrario sinal= -1 JN n1 ;antes de st todo o trexo de codigo salva os sinais nas respectivas variaveis s1 e s2 LDA zero STA s1 ;sinal=0 sb: LDA b JN n2 LDA zero STA s2 JMP st n1: LDA mum STA s1 ;sinal=-1 JMP sb n2: LDA mum STA s2 ;-------------------------------------------------------------------------------------------------------------- st: ; PARTE 2 LDA s1 ;esta parte verifica o sinal resultante da divisao NOT ADD um ADD s2 JZ posi ;se a soma dos sinais for diferente de zero ou seja -1 ou 1 significa que o numero sera negativo LDA zero ;numero resultante sera negativo STA si JMP dps posi: LDA um ;numero resultante sera positivo STA si ;--------------------------------------------------------------------------------------------------------------- dps: ; PARTE 3 LDA b JN neg1 a1: LDA a ;esta parte serve pra colocar os numeros no formato absoluto JN neg2 JMP cal neg1: NOT ADD um STA b JMP a1 neg2: NOT ADD um STA a ;--------------------------------------------------------------------------------------------------------------- cal: ; PARTE 4 LDA b NOT ADD um STA b ;b=-b pra que facilite nos calculos pois precisamos de subtraçoes sucessivas para que a divisao seja possivel cont: LDA a ADD b STA temp ;temp existe pois após fazermos a-b precisamos verificar se a resposta eh valida e caso seja vdd precisamos fazer res++ para posteriormente reutilizar temp afim de atualizar a variavel a JN fm LDA res ADD um STA res LDA temp ;reutilizaçao de temp STA a ;atualizaçao da variavel a JMP cont fm: ;------------------------------------------------ PARTE 5-------------------------------------------------------- LDA si ;terminada a divisao a partir daqui sera verificado se a resposta sera positiva ou negativa JZ inv ;se si=0 significa que a resposta eh negativa assim precisamos inverter seu sinal LDA a STA resto ;resto = ultimo valor da variavel a JMP fim ;se si=1 eh porque a resposta eh positiva então pode-se finalizar o codigo inv: LDA a NOT ADD um STA resto ;caso si=0 significa que a resposta e o resto precisam ter seus sinais alterados LDA res NOT ADD um STA res ;mmudança de sinal de resposta fim: HLT ;---------------------------------------------------------------------------------------------------------------- org 90h ; DEFINIÇAO DAS VARIAVEIS a: db 0Eh ;numero a ser dividido (PODE SER NEGATIVO OU POSITIVO) b: db 0FDh ;numero que dividira (PODE SER NEGATIVO OU POSITIVO) resto: db 0 res: db 0 ;resposta um: db 1 temp: db 0 ;variavel temporaria s1: db 0 ;indicador de sinal de a s2: db 0 ;indicador de sinal de b si: db 0 ;indicador de sinal resultante zero: db 0 mum: db 0FFh ;constante -1

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!