Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1

    Fibonacci Assembly

    Ciao a tutti, mi sono appena iscritto perchè non potevo non essere presente su quello che considero uno dei punti di riferimenti italiani per quanto riguarda la programmazione

    Passiamo alla richiesta, domani dovrei svolgere una parte di esame all'università in cui devo scrivere un programma in MASM. Mi interesserebbe fare la serie di Fibonacci e l'n-esimo numero di fibonacci.
    Per quanto riguarda l'n-esimo numero ho scritto il programma così:

    codice:
    mov ah,1h
    int 21h
    and al,0fh
    mov dl,al
    mov cl,2
    mov al,0
    mov bl,1
    ciclo: cmp cl,dl
           je pari
           add al,bl
           add bl,al
           add cl,2
           cmp cl,dl
           je pari
           jl ciclo
    dispari: mov dl,al
             mov ah,2h
             int 21h
             jmp fine
    pari:   mov dl,bl
            mov ah,2h
            int 21h
            jmp fine
    fine:   mov ah,4c00h
            int 21h
    Consigli per ottimizzarlo o comunque c'è da aggiungere qualcosina?

    Per quanto riguarda la serie di fibonacci, non ci riesco a gestire la stampa a schermo, ho abbozzato questo:

    codice:
    mov ah,1h
    int 21h
    and al,0fh
    mov dh,al
    mov cl,2
    mov al,0
    mov bl,1
    cmp dh,cl
    je stampa
    jl stampa1
    
    ciclo: cmp cl,dh
           je pari
           add al,bl
           add bl,al
           add cl,2
           cmp cl,dh
           je pari
           jl ciclo
    dispari: mov dl,al
             mov ah,2h
             int 21h
             jmp fine
    pari:   mov dl,bl
            mov ah,2h
            int 21h
            jmp fine 
    stampa: mov dl,al
            mov ah,2h
            int 21h
            mov dl,bl
            mov ah,2h
            int 21h
            jmp fine
    stampa1: mov dl,al
            mov ah,2h
            int 21h
            cmp dh,1
            je fine
            jmp ciclo
    stampa2:mov dl,bl
            mov ah,2h
            int 21h  
            jmp ciclo
                  
    fine:   mov ah,4c00h
            int 21h
    Credo però che sia pieno di fesserie... per favore aiutatemi che domani c'è l'esame

    Grazie mille a tutti

  2. #2
    Ho provato a fare la serie di fibonacci ed è venuto fuori questo:
    codice:
    mov cl,2
    mov al,0
    mov bl,1
    mov dl,al
    mov ah,2h
    int 21h
    mov dl,bl
    mov ah,2h
    int 21h
    ciclo: add al,bl
           add bl,al
           mov dl,al
           mov ah,2h
           int 21h
           mov dl,bl
           mov ah,2h
           int 21h
           add cl,1
           cmp cl,var
           jl ciclo 
    fine: mov ax,4c00h
          int 21h
    Ovviamente errato, ma qual è il problema?

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Solo per informazione, quando si posta del codice bisogna usare il tag CODE, non il tag QUOTE che serve a effettuare citazioni di altri post...

    Correggo i tuoi post.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4

    Re: Moderazione

    Originariamente inviato da LeleFT
    Solo per informazione, quando si posta del codice bisogna usare il tag CODE, non il tag QUOTE che serve a effettuare citazioni di altri post...

    Correggo i tuoi post.


    Ciao.
    Ti ringrazio, non ricapiterà.

  5. #5
    Esame rinviato, nessuno mi sa aiutare?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Qui

    http://www.beroset.com/

    trovi degli esempi per Fibonacci scritto con MASM
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Qui

    http://www.beroset.com/

    trovi degli esempi per Fibonacci scritto con MASM
    Ciao grazie per la risposta. Gli ho dato un'occhiata ed è fatto con comandi diversi da quelli che ci ha insegnato il prof, io lo devo fare come nei testi che ho citato..

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Diversi? Ma è sempre assembly x86 ...

    Il fatto è che non c'è il tempo (e non ha senso) per scrivere tutto il codice pronto per l'uso, anche perché, appunto, trovi esempi completi ovunque su Internet ...

    Se proprio vuoi affrontare la questione con il tuo codice, allora commenta ogni riga che hai usato, indica cosa volevi fare nei vari blocchi e cosa non ti riesce o quali errori hai.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Originariamente inviato da oregon
    Diversi? Ma è sempre assembly x86 ...

    Il fatto è che non c'è il tempo (e non ha senso) per scrivere tutto il codice pronto per l'uso, anche perché, appunto, trovi esempi completi ovunque su Internet ...

    Se proprio vuoi affrontare la questione con il tuo codice, allora commenta ogni riga che hai usato, indica cosa volevi fare nei vari blocchi e cosa non ti riesce o quali errori hai.
    Ecco:
    codice:
    mov cl,2 ;contatore inizializzato a 2
    mov al,0 ;primo numero 0    
    mov bl,1 ;secondo numero 1
    mov dl,al ;sposto in dl il primo numero
    mov ah,2h ;preparo per la stampa
    int 21h      ;stampo il primo numero contenuto in dl
    mov dl,bl   ;sposto in dl il secondo numero
    mov ah,2h ;preparo per la stampa
    int 21h      ;stampo il secondo numero contenuto in dl
    ciclo: add al,bl ;sommo il primo numero con il secondo
    add bl,al  ;sommo il secondo con il primo
    mov dl,al ;sposto in dl il primo numero
    mov ah,2h ;preparo per la stampa
    int 21h      ;stampo
    mov dl,bl  ;sposto in dl il secondo numero
    mov ah,2h ;preparo per la stampa
    int 21h     ;stampa
    add cl,2    ;incremento il contatore di 2 (visto che ho già calcolato 2 numeri di fibonacci)
    cmp cl,var ; confronto il contatore con var (non si vede ma l'ho inizializzata a 10)
    jl ciclo      ;se il contatore è minore di 10, vai a ciclo se no fine
    fine: mov ax,
    4c00h int 21h

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Tanto per cominciare, se non ricordo male, la funzione

    AH=2 INT 21h

    visualizza il carattere il cui codice ASCII è in DL ma tu non usi il codice ASCII dei valori ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.