Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Ajuda em Assembly

Collapse
This topic is closed.
X
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Ajuda em Assembly

    Se alguém tiver alguma idéia de como fazer o seguinte "sistema" :

    -------------------------------

    Fazer um programa assembly que leia 3 numeros (será digitado pelo usuário), sendo assim numeros de 0.. à ...999.

    Deve se fazer a leitura deste numero e descreve-lo por extenso!

    No caso se for digitado 011 : onze, 902 : novecentos e dois.... assim por diante.

    --------------------------------



    Alguém pode trocar uma idéia de isso funcionar? eu até tenho mas não entendo como fazer a comparação de um numero.

    Por exemplo, vou comparar a centena, logo eu divido o numero por 100, se sobrar 0, ou 1, etc..

    ai eu faço uma variavel que guarda os offset's, das strings da variavel de centena (cem, duzentos....) [offset cem = 0, offset duzentos = 4...]


    Mas e ai, como faço dai pra pegar o numero que sobrou, por exemplo o 4 que será quatrocentos...


    eu faço um "cmp"? e dou um jump? estou apanhando mais nisso...

  • Font Size
    #2
    1 - Amigo pra facilitar, poste a parte do código que vc já tem feita que a gente tenta te ajudar(se eu souber pq sou iniciante também em ASM).
    2 - Vc tem que fazer em ASM puro ou pode usar as APIs?
    3 - Isso parece ser trabalho de facu ou curso, se for recomendo vc tentar fazer sozinho que será melhor pra vc mesmo, mas se mesmo sendo trabalho de escola quiser ajuda vamos te ajudar.

    []s
    <<< ENGINEERING CODERZ - HACKING PROGRAMMING GROUP >>>
    msn/mail: azurus21@gmail.com

    Comment


    • Font Size
      #3
      Postado Originalmente por Azurus Ver Post
      1 - Amigo pra facilitar, poste a parte do código que vc já tem feita que a gente tenta te ajudar(se eu souber pq sou iniciante também em ASM).
      2 - Vc tem que fazer em ASM puro ou pode usar as APIs?
      3 - Isso parece ser trabalho de facu ou curso, se for recomendo vc tentar fazer sozinho que será melhor pra vc mesmo, mas se mesmo sendo trabalho de escola quiser ajuda vamos te ajudar.

      []s
      1-
      Código:
      .model small
      .stack 1024
      
      .data
      
      frase1 db 13,10, "Digite o numero de 3 digitos para gerar o extenso:$"
      frase2 db 13,10, "O extenso desse numero eh:$"
      frase3 db 13,10, "Deseja executar novamente? (s/n)$"
      frase4 db 13,10, "O programa sera encerrado.@"
      frase5 db 13,10, "caracter invalido.@" 
      centena db "cem$,duzentos$,trezentos$,quatrocentos$,quinhentos$,seiscentos$,setecentos$,oitocentos$,novecentos$"
      dezena db "dez$onze$doze$treze$quatorze$quinze$dezeseis$dezesete$dezoito$dezenove$" 
      maisdezenas db "vinte$trinta$quarenta$cinquenta$sessenta$setenta$oitenta$noventa$"
      unidade db "um$dois$tres$quatro$cinco$seis$sete$oito$nove$" 
      
      offsetcentena db 0,4,13,23,36,47,59,70,81 
      offsetdezena db 0,4,9,14,20,29,36,45,54,62,70
      offsetmaisdez db 0,6,13,22,,32,41,49,57 
      offsetunid db 0,3,8,13,20,26,31,36,41
      
      saida db 100 dup(" "), "$"
      
      
      .code
      
      extenso proc
          
          cmp cx, 100
          jne duz     
          mov saida, centena[0]
      duz:    
          
          
          
          
          ret
          endp
      
      inicio: 
      
          mov ax,@data
          mov ds, ax
          
      leitura:
      
          mov ah, 9
          mov dx, offset frase1
          int 21h
          
          
          mov ah,1
          int 21h
          cmp al, 48
          jl erro
          cmp al, 57
          jg erro
          sub al, 48
          mov bl, 100
          mul bl
          mov cx, ax
          call extenso
          
          
      dez:mov ah, 1
          int 21h
          cmp al, 48  
          jl erro
          cmp al, 57
          jg erro
          sub al, 48
          mov bl, 10
          mul bl
          add cx, ax
          
          mov ah, 1
          int 21h
          cmp al, 48
          jl erro
          cmp al, 57 
          jg erro
          sub al, 48
          mov ah, 0
          add cx, ax
          
          mov ax, cx
          
          mov dx, offset saida
          call extenso
          
          
          mov ah, 9
          mov dx, offset frase2
          int 21h       
          mov ah, 9
          mov dx, offset saida
          int 21h
          mov ah, 9
          mov dx, offset frase3
          int 21h
          mov ah, 1  
          int 21h
          cmp al, "s"
          je leitura
          
          mov ah, 9
          mov dx, offset frase4
          int 21h
          mov ah, 4ch
          int 21h
          
          
      erro:
          mov ah, 9
          mov dx, offset frase5
          int 21h
          jmp leitura
          
          end inicio
      2-
      Não sei se nessa aplicação realmente é algo para usar api's, mas é só no asm mesmo.

      3- Sim é da facu, mas não tenho tempo e é pra amanhã, hehe... e agora final do semestre tem muitos trabalhos e me enrolei um pouco, por isso venho aqui pedir a ajuda de vocês. reconheço que devo fazer sozinho para aprender, mas no momento preciso ao menos de ajuda para terminar este trabalho!


      Se alguém dar umas idéias! eu agradeço, eu estou apanhando pra inserir a string na variável "saida"... e também pra fazer a comparação do numero, pra ver se é 100 ou 200 ... e também queria ver se tinha como comparar com os numeros de dezena, 11,12,13,14, que são diferente de "dez e um, dez e 2, ...."


      abs;

      Comment


      • Font Size
        #4
        acho que os cifrão não precisa colocar no final das palavras, certo?
        basta separa-los por virgula?

        Comment


        • Font Size
          #5
          Ajuda em Assembly

          eu tava jogando tdo normal ate q um dia eu não conseguia mais me conectar ao VAC...
          aih eu fui tentar me conectar a outros jogos online, o gameguard funcionava mas o login server eu num consigo acessar em nenhum jogo.
          alguem sabe o q fazer?
          me ajuda velho PLZ
          bulk email verification tool

          Comment


          • Font Size
            #6
            O que isso tem a ver com Assembly?? Ou com a dúvida abordada neste tópico?

            Postou em área errada e de forma errada....

            LEIA NOSSAS REGRAS E TERMOS DE USO antes de sair postando...

            Creio que a dúvida do autor do post foi sanada, pois o mesmo ao menos postou denovo este ano, então...

            TÓPICO TRANCADO!
            Não te engane. De Deus não se zomba, o que o homem plantar, é o que ele vai colher. (Gálatas 6:7)


            sigpic


            Comment

            X
            Working...
            X