PDA

View Full Version : [assembly] lettura interi da tastiera


canada
21-08-2006, 10:37
Ciao a tutti!!
Tanto per cambiare avrei bisogno di un aiuto :D
Devo fare un programmino in assembly 8086 usando assembler TASM in DOS e visto che è la prima volta che ho a che fare con assembly ho un po di casino in testa.
Per iniziare devo leggere da tastiera due sequenze di interi compresi tra -9 e 9 (e memorizzarle da qualche parte visto che poi ci devo lavorare un po sopra :) ).
Quello che nn mi è chiaro (per il momento :D ) è come fare a gestire l'inserimento e la memorizzazione dei numeri negativi....
Grazie in anticipo a chi mi darà una mano!!!!!!!!!!

71104
21-08-2006, 10:50
non è un problema di assembly, è un problema di algoritmo. devi controllare che nella stringa ricevuta in input il primo carattere sia un numero o il segno meno, e se è il segno meno controlla che il secondo sia un numero. infine controlla che non ci siano altri caratteri.

andbin
21-08-2006, 10:56
Per iniziare devo leggere da tastiera due sequenze di interi compresi tra -9 e 9 (e memorizzarle da qualche parte visto che poi ci devo lavorare un po sopra :) ).
Quello che nn mi è chiaro (per il momento :D ) è come fare a gestire l'inserimento e la memorizzazione dei numeri negativi....
Grazie in anticipo a chi mi darà una mano!!!!!!!!!!Ciao.
Devi usare uno dei servizi del DOS (INT 21h) oppure del BIOS (INT 16h) che consentono di prendere in input 1 carattere.
Quello che ottieni, attenzione, è il codice ASCII del carattere, quindi se premi il tasto 1 ottieni il carattere '1' che ha codice 31h.
Sei poi tu che devi controllare la validità di ciò che viene inserito e poi eventualmente convertire la sequenza dei digit inseriti in un valore binario a 8, 16 o più bit.

71104
21-08-2006, 12:31
@andbin: il problema da quanto chiedeva non era la ricezione dell'input, era l'interpretazione dei numeri negativi

andbin
21-08-2006, 13:11
@andbin: il problema da quanto chiedeva non era la ricezione dell'input, era l'interpretazione dei numeri negativiSì, oops vero.
Comunque è abbastanza banale. Se il primo carattere è un meno '-' basta tenersi un flag da qualche parte e poi fare la conversione normalmente come se il numero fosse positivo. Alla fine se il flag è "true" si fa il complemento a 2 del numero (istruzione NEG).
Se canada ha già fatto tutta la gestione dell'inserimento, dovrebbe essere 'na passeggiata. ;)

canada
21-08-2006, 13:38
Grazie!! In teoria ho capito...spero di aver capito anche in pratica..meglio nn dare nulla per scontato con la mia zucca!! ;)
Mi metto all'opera ma sappiate che....


Comunque è abbastanza banale...

...non esiterò a rompere di nuovo le scatole...anche con domande migliori!! :D