Ah ... ecco ... io ho installato MASM ma è lo stesso.
Ho visto il codice e ho visto che esegui l'input ASCII in un buffer del primo numero, lo converti in binario e poi ripeti le due operazioni per il secondo numero.
A parte che ti conviene impostare una routine per la conversione da ASCII a binario e chiamarla due volte durante l'input invece di scrivere due volte lo stesso codice, a questo punto hai due strade da poter seguire.
La prima :
1) Azzeri un contatore di '1' (magari in un registro a 8 bit)
2) imposti un ciclo con un contatore che parta dal primo valore binario e termini al secondo (utilizzi un registro a 16 bit come SI per contare)
3) scrivi una funzione che trasformi il valore di SI in ASCII e, mentre converti, controlli che il carattere convertito sia un '1' ... in questo caso aumenti il contatore
La seconda :
1) Azzeri un contatore di '1' (magari in un registro a 8 bit)
2) Effettui soltanto l'input dei valori in ASCII in due buffer diversi (buffer1 e buffer2) e non trasformi in binario i valori (non usi NUM1 nè NUM2)
3) Conti le cifre '1' nel buffer1 aggiornando il contatore
4) Aumenti il valore di buffer1 di 1 seguendo le regole della numerazione decimale tenendo conto che utilizzi valori ASCII e ripeti il punto 3) finché i due buffer non si equivalgono

Rispondi quotando