Note tecniche
    Il "Quarto" fuso ] The 4th Time Zone ]   


 

Introduzione
Note tecniche


                                   

[ Indice ][ Indietro ]

Formato dei numeri nei registri CPU

Vengono impiegati tre formati: 16 bit, 32 bit e floating-point a 32 bit.

Il più semplice a 16 bit consente di rappresentare un numero intero compreso tra -32768 e +32767, con il segno memorizzato nel bit più significativo; alternativamente consente di rappresentare un numero intero senza zegno compreso tra 0 e 65535.

reg. H L
16 bit sbbb bbbb bbbb bbbb

Nella CPU, un intero viene mantenuto normalmente nei registri H e L, con la parte più significativa in H. In memoria, un intero occupa due bytes contigui. Il byte di indirizzo più basso contiene la parte meno significativa del numero, quella mantenuta nel registro L. Il byte di indirizzo più alto contiene la parte più significativa, mantenuta nel registro H.

Il secondo formato richiede l'impiego di due interi che uniti formano un numero a 32 bit detto doppio o lungo che consente di rappresentare un numero intero compreso tra -2147483648 e +2147483647, con il segno memorizzato nel bit più significativo del primo intero.

reg. H L D E
32 bit sbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb

Nella CPU, un doppio viene mantenuto normalmente dei registri H, L, D ed E, con la parte più significativa in H, e via via le parti meno significative negli altri: E è il byte meno significativo. In memoria, un numero doppio occupa quattro bytes contigui, suddivisi nei due interi che lo compongono: l'intero più significativo (HL) è memorizzato nelle locazioni con indirizzo più basso, mentre l'intero meno significativo (DE) è memorizzato nelle locazioni con indirizzo più alto. Sicché sullo Stack, l'intero più significativo si trova sulla cima dello Stack, mentre l'intero meno significativo risulta il secondo in ordine di accessibilità.

Stack. CPU Memoria
SP+3 D addr+3
SP+2 E addr+2
SP+1 H addr+1
SP+0 L addr+0

Il terzo formato richiede l'impiego di un doppio a 32 bit, ma internamente i bit sono usati in modo differente, consentendo di rappresentare un numero reale approssimativamente compreso tra -1.7 * 10^38 e +1.7 * 10^38 con una precisione di 7 cifre. Il segno viene memorizzato nel bit più significativo; seguono poi otto bit di parte esponenziale ed infine 23 bit di mantissa.

reg. H L D E
32 bit f.p. seee eeee ebbb bbbb bbbb bbbb bbbb bbbb

Uso dei registri Z80

Viene mantenuto in BC il puntatore all'istruzione. Lo stack di calcolo viene realizzato tramite il registro SP.

A F  
B C Instruction pointer
D E  
H L  
PC Z80 program counter
SP Stack pointer
IX  
IY  
A' F'  
B' C'  
D' E'  
H' L'  
I R  

[ Indice ][ Indietro ]


Ultimo aggiornamento: 29-11-2002. Copyright (c) 2000-2002 Matteo Vitturi. 
Per problemi o domande relativamente a questo sito contattare il webmaster
Last update: 11.29.2002. Copyright (c) 2000-2002 Matteo Vitturi.
For problems or questions related to this web please contact the webmaster.
1