| 
      Sezione | 
      
       
   
    
      Indirizzi Base
    
    
    
      Registri Interni
    
      | 
    
| Libreria GIOBE.ASM | 
| Raccolta di Procedure ASM | 
      Dec2Wor [27 di 54]  | 
 
  | 
| 
       | 
      
      Aggiornato 13 febbraio 2007 | 
| Converte fino a 5 caratteri ASCII decimali nel numero binario a 32 bit che corrisponde loro. | 
| 
     
  | 
  
| La Procedura si chiama in questo modo: | 
| 
         
  | 
      
  | 
  
In
                ingresso bisogna predisporre:
  | 
| 
         
  | 
      
| 
     
  | 
  
In uscita  lascia:
  | 
| 
         
  | 
      
| La seguente Area di Testo mostra il Modulo varie14 utilizzato per inserire la Procedura nella Libreria Giobe.ASM/LIB: | 
| 
         
  | 
      
| 
       Dec2Wor / varie14  | 
      
    NB:           se il testo contenuto nell'Area
        ti 
      sembra strano (cioè se contiene caratteri inconsueti) non hai ancora installato il font Giobe.TTF : clicca qui!!  | 
    
| 
         
  | 
      
| 
         
  | 
      
| Va sottolineato che, nonostante sia assolutamente necessario disporre a un'area di memoria (variabile) composta da 6 bytes (i 5 caratteri e il terminatore 00H), essa può risultare riempita anche parzialmente; è il caso dei programmi che immettono in essa i codici dei tasti numerici premuti. | 
| 
         
  | 
      
In questi casi:
  | 
| 
         
  | 
      
Dunque, se la stringa da convertire non è 
  nulla e ha meno di 6 caratteri ascii 
  numerici:
  | 
| 
         
  | 
      
Di solito questa  Procedura 
  viene attivata subito dopo aver acquisito la 
  stringa da tastiera, con una procedura attenta a filtrare ogni 
  carattere non autorizzato e, possibilmente, in grado di gestire al meglio 
  l'acquisizione con i giusti accorgimenti:
  | 
| 
         
  | 
      
| La procedura non provvede alla stampa del risultato; se si desidera questo servizio basta chiamare la Procedura Wor2Asc, progettata per generare la stringa ascii esadecimale corrispondente al valore del byte passatole in AX e poi porla a video con il colore precedentemente predisposto in CS:[ATTRIB], nella posizione di stampa corrente. | 
| 
         
  | 
      
| Prima della stampa del risultato è comunque opportuno provvedere alla verifica di eventuali errori, controllando se il valore di DX è FFFFH | 
| 
         
  | 
      
| Una simile procedura è stata progettata per la Libreria Pascal (Giobe.TPU), con il nome di INexad. | |||
La Libreria
   
  Giobe.ASM/LIB mette a 
  disposizione anche la  Procedura 
  che provvede alla conversione opposta:
  | 
| 
         
  | 
      
| 
           | 
          NB: La procedura Dec2Wor presente nella libreria Giobe.ASM [Giobe.LIB] contiene una lieve imprecisione, per altro praticamente irrilevante | 
| 
         
  | 
      
| Desidero fare questa precisazione, per amore della correttezza: mi sono accorto [febbraio 2007] di una incongruenza logica nella Dec2Wor, a livello Dec_W1; in questo punto del codice la procedura effettua un controllo sul numero dei caratteri ASCII decimali effettivamente predisposti nella stringa da convertire; per operare questo controllo la versione presente in libreria utilizza le istruzioni CMP CX,5 e JG Dec_W8), nell'intento di verificare se il numero lasciato in CX è maggiore di 5. | |
| Il problema sta nel fatto che, a rigor di logica, l'istruzione JG dovrebbe esser sostituita da JA, come mostrato nel listato corretto presente in questa pagina. | 
| In fatti il numero da controllare (presente in CX) è decisamente un intero senza segno, per cui la seconda [JA (Above, "superiore a")] è logicamente più propria rispetto alla prima [JG (Great, "maggiore di", "più grande di")], destinata al controllo di numeri interi con segno. | 
| 
         
  | 
      
| Tuttavia, il fatto che il processore sia chiamato ad interpretarlo (da JG invece che da JA) come numero con segno è praticamente irrilevante, essendo il numero da controllare comunque positivo e praticamente molto piccolo, quindi identico ad un numero senza segno. | |
| Per questa ragione ho ritenuto di non intervenire sul codice presente nella libreria Giobe.ASM [Giobe.LIB], assolutamente funzionante anche senza questo dettaglio intellettuale, anche per non creare differenze con le migliaia di copie già scaricate, sulle quali è ovviamente impossibile intervenire... | 
  | 
| 
      
       |  
    Libreria GiobeASM | 
      
       | 
    Dec2Wor | 
    
    ![]()  | 
    
    ![]()  | 
    
    ![]()  | 
 ||
| 27 di 54 | 
      
  | 
    
| 
     
  | 
  
        
  | 
    
        
  | 
    
| 
      
         
        Home 
     | 
      
  | 
    |||||||
      
  | 
       
          
        Motore Ricerca  | 
      
  |