ASM Tipos Datos
From Movaxes
Contents |
Datos
Tipos de Datos
La computadora solo entiende los 1 y los 0, toda la memoria está formada por conjuntos de bits, sin embargo hay ciertas reglas que le permiten diferenciar entre código y datos, etc. Este tutorial no es sobre el funcionamiento del hardware sino mas bien sobre los tipos de datos que podemos usar.
bit
Esta es la unidad mínima. Representamos simbólicamente la presencia de un voltaje como 1 y su ausencia como 0. BIT es la abreviación de Binary Digit (Digito Binario).
nibble
Un Nibble es una colección de 4 bits. Puede representar 2^4 valores (1111 (binario) = 15) lo que significa que podemos representar hasta un numero hexadecimal = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
byte
Un byte es el dato menor que la computadora puede direccionar, eso quiere decir que toda la memoria está dividida en conjuntos de 16 bits (byte). Un byte es un conjunto de 2 nibble (8 bits). Los bits de un byte se numeran de esta forma: 7,6,5,4,3,2,1,0 siendo el 0 el bit de orden inferior (low order), y el bit 7 es el de orden superior (high order) también llamado bit más significante (most significant bit) del byte. Un byte requiere de dos hexadecimales (2 nibbles). Puede representar 2^8 = 256 valores sin signo (por ejemplo: los caracteres ascii). También puede representar del número -127...+128 (con signo).
word
Un Word (palabra) es un conjunto de 16 bits (2 bytes) del 0 al 15. Puede representar 2^16 = 0...65,536 valores (sin signo) o del -32,768..+32,767. Un word son = 2 bytes, 4 nibbles o 16 bits.
double words
Un Double Word (doble palabra) representa el valor sin signo de 2^32 = 4,294,967,296 (sin signo) o -2,147,483,648..2,147,483,647 (con signo). Un doble word son = 2 word, 4 bytes, 8 nibbles, 32 bits.
Gráfica
;0; Bit (1/0) ;0000; Nible ;0000;0000; Byte ;00000000;00000000; Word ;0000000000000000;0000000000000000; Double Word
Little Indian
La memoria de la x86 utiliza el orden Little Indian, que significa que los valores llevan el byte menos significativo primero, esto se refiere al orden de los bytes y no los bits.
El valor hexadecimal AABBCCDD se representaría en la memoria de esta manera:
;----;----;----;----; ; DD ; CC ; BB ; AA ; ;----;----;----;----;
Complemento a Dos
El complemento a dos es la forma estandar de representar números negativos y positivos en enteros binarios. El signo de un número se cambia al invertir todos sus dígitos y agregar uno.
Por ejemplo, para convertir el numero 1 a su negativo -1 hacemos:
0001 = Numero 1 1110 = Invertido 1111 = Agregamos 1 = -1