Sezione |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
Esercizio n° A025 3/5 [123 di 157] |
|
|
||
Gestione Numeri Binari -
Conversione da stringa Ascii decimale a DWord - Progetto Dec2Wor Aspetta pressione fino a 5 tasti Numerici e calcola valore binario a 32 bit |
||
Progetto della Procedura Dec2Wor [1 di 2] |
|
Vediamo ora la Procedura interna Dec2Wor, progettata per la Conversione di 5 caratteri Ascii decimali in una doubleword. |
|
La stringa da convertire è puntata da CS:SI e deve contenente rigorosamente al massimo 5 caratteri ascii solo numerici ed essere terminata con 00H; il numero binario a 32 bit, corrispondente al valore numerico decimale della stringa, è lasciato in uscita in DX,AX. |
|
Valori corretti per la stringa sono: "00000", 00H o "1", 00H o "99999", 00H o "2003", 00H, ma la variabile DEPO deve comunque disporre di 6 locazioni (5 caratteri più il terminatore, 00H). |
|
Se la sequenza di caratteri Ascii numerici esprime un numero inferiore o uguale a "65535", per il risultato basta AX. |
|
Se la stringa è vuota o se contiene più di 5 caratteri la procedura termina subito, lasciando in uscita in DX,AX rispettivamente il valore 00000000H o FFFF0000H, utile per esercitare un eventuale controllo dopo la sua chiamata... | |
Ecco il codice assembly della Dec2Wor: dal suo aspetto decisamente aggressivo si evince una certa difficoltà nella sua realizzazione, dovuta alla volontà di gestire un numero binario a 32 bit con registri a 16 bit e al limitato numero di questi ultimi. | |
Per questo ho deciso di proportelo in 2 parti: |
|
|
Esercizio |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
Nonostante le difficoltà la logica di progetto non è poi tanto diversa da quella
proposta per la sorella Dec2Byt;
vediamola in dettaglio:
|
|
Palestra Apprendisti | Esercizio n° A025 3/5 | |||||||
123 di 157 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|