2.4. Tipos de operandos (Última modificación el 04/03/08) El tipo de un dato viene determinado por la operación que se realice con él. Categorías generales más importantes: (1) (2) (3) (4) Número Dirección Campo de bits Carácter 1 (1) Números Son usuales tres tipos de datos numéricos: (i) Enteros (MIPS) - Con signo, representados en complemento a 2. - Sin signo, en binario natural. Tamaños: byte, media palabra (half-word), palabra (word). (ii) Punto flotante (MIPS) IEEE 754: simple precisión (32 bits) y doble precisión (64 bits). (iii) Decimal (no en la MIPS) En BCD (Decimal Codificado en Binario): - Empaquetado: 2 dígitos decimales por byte. Ejemplo: 01001001 = 49. - Desempaquetado: 1 dígito/byte. Ejemplo: 00000100 00001001 = 49. 2 (2) Direcciones (de memoria) En algunos modos de direccionamiento (indirecto por registro, base + desplazamiento) se utilizan registros para contener direcciones. Son números naturales (en la MIPS tienen 32 bits). (3) Caracteres Códigos binarios para representar caracteres. Hay varios estándares, uno de ellos es el ASCII, de 8 bits, que es el que usaremos con el PCSPIM. MIPS no tiene instrucciones específicas para tratamiento de caracteres. (4) Campos de bits Un objeto de n bits es considerado como n datos de 1 bit, sobre los que se pueden aplicar operaciones lógicas. 3 Tipos de datos del VAX • Enteros: 8 (B), 16 (W), 32 (L), 64 (Q) y 128 (O) bits. • Punto flotante: 32 (F), 64 (D,G) y 128 (H) bits. • BCD (P): 4 bits por dígito. • Cadena numérica (T,S): 8 bits por dígito. • Cadena de caracteres (C): 8 bits por carácter. 4 Formatos numéricos del Pentium II 5 Tipos de datos en la MIPS (1)Número: (i) Enteros: - Entero con signo (complemento a 2) (32 bits): add rd,rs,rt - Entero sin signo (32 bits): addu rd,rs,rt (ii) Punto flotante IEEE: - Simple precisión (16 bits): add.s fd,fs,ft - Doble precisión (32 bits): add.d fd,fs,ft (2) Dirección: La instrucción lw rt,desp(rs) carga la palabra en la dirección ‘rs+desp’ en el registro rt. El operando en el registro rs (base) es una dirección a la que se le suma un desplazamiento (valor entero). (3) Campo de bits (32 bits): and rd,rs,rt 6