PDA

Visualizza la versione completa : [ASSEMBLY] Fibonacci


tirif4
05-12-2005, 21:59
Ho bisogno di un enorme favore da chiunque di voi.
Ho bisogno di sapere quali sono le istruzioni che mi implementano in linguaggio x86:
1-Leggere un numero(dato) da tastiera
2-Stampare un numero su video
3-Stampare una stringa su video.
Vi prego datemi una mano non so piu dove andare a sbattere la testa.
Grazie

DYNAM!C+
05-12-2005, 22:08
linguaggio x86?
ma intendi la famiglia di processori x86 - ti riferisci all'assembler di quei processori=?

tirif4
05-12-2005, 22:28
Si quello.

oregon
06-12-2005, 00:07
In realta', strettamente parlando, non si puo' rispondere alle tue domande perche' nessuna istruzione assembler x86, in se', realizza quanto chiedi.

Per fare anche una sola di queste operazioni, ti devi riferire alle funzioni base del firmware (o del sistema operativo) legato ai sistemi detti "compatibili PC IBM".

Insomma, si deve parlare delle funzionalita' offerte dal BIOS (INT 10, INT 16 ...) oppure non ha senso.

Prima di andare avanti, dovresti chiarire questo aspetto della tua domanda ...

tirif4
06-12-2005, 09:36
Si scusate mi sono spiegato male. Io devo scrivere la funzione di Fibonacci in linguaggio assembly x86 e io devo prendere da tastiera il numero di cui devo calcolare la funzione e poi stampare a video il risultato.
In pratica devo tradurre questi pezzi di linguaggio MIPS:

1) li $v0, 1 # carica in $v0 il codice della print_int
add $a0, $s0, $0 # carica in $a0 il risultato salvato in $s0
syscall # stampa il risultato

2) li $v0, 5 # carica in $vo0 il codice della read_int
syscall # legge l'intero e lo carica in $v0

Spero di essermi spiegato un po meglio.Scusate ancora

Frapper
06-12-2005, 15:16
CIAO ..allura devi sfruttare l'INT 21h

per acquisere un carattere con eco su video devi muovere il valore 01h nel registro AH, poi richiamare l'int21h,
questa funzione attende la battitura di un tasto , lo stampa a video e ne restituisce il codice ASCII in AL...
quindi
mov ah,01h
int 21h

e in AL hai il codice ascci..nota hai il codice ascii, ciņ vuol dire che se inserisci da tastiera un numero ad esempio 2 in AL avrai 32h...quindi per ottenere il vero numero devi sottrarre 30h

per visualizzare a video invece devi muovere in DL il carattere che vuoi stampare poi muovere in AH 02h e richiamare l'int21h
quindi:
mov DL,63d ( il codice ascii del punto interrogativo: ?)
mov ah,02h
int 21h


spero di essere chiaro e di non avere connesso errori ...č da moltissimo che non uso il bellissimo assembler

tirif4
06-12-2005, 23:38
Grazie mille mi hai salvato la vita.

Loading