CC51B - Arquitectura de Computadores : Tarea #4
El ZX Spectrum 48K
por Denis Fuenzalida

( Introducción / Lenguaje de Máquina / Interrupciones / Memoria / Canales / Punto Flotante )


Punto Flotante

Cualquier número (excepto 0) puede ser escrito de forma única como + m x 2exp, donde + es el signo, 'm' es la mantisa y está en el rango [1/2 -> 1), 'exp' es el exponente, un numero entero (posiblemente negativo).

Para guardar el número en memoria usamos 5 bytes, como sigue:

(1) Ponemos los primeros 8 bits de la mantisa en el segundo byte (sabemos que el primer bit es 1), los siguientes 8 bits en el tercer byte , los siguientes 8 en el cuarto byte y los ultimos 8 en el quinto byte.

(2) Reemplazamos el primer bit del segundo byte (que sabemos es 1) por el bit de signo: 0 -> nro positivo, 1 ->nro negativo.

(3) Se escribe (exponente + 128) en el primer byte. Por ejemplo, para n = 1 / 10:

1/10 = 4/5x2-3

Con lo que la mantisa 'm' es .11001100110011001100110011001100 en binario (como el 33-avo bit es 1, deberiamos redondear el bit 32-avo de 0 a 1), y el exponente 'e' es 3.

Existe otra forma de notación para los enteros entre -65535 y +65535:

El primer byte es 0.
El segundo byte es 0 para un número positivo, FFh para un número negativo.
Los bytes 3ro y 4to son los bytes de menor y mayor significancia del numero (o del número +131072 si es negativo).
El quinto byte es 0.