BITS
Es el acrónimo de Binary digit (o sea de ‘dígito binario’, en español denominado como bit, y en menor medida como bitio). Un bit es un dígito del sistema de numeración binario. La capacidad de almacenamiento de una memoria digital también se mide en bits, pues esta palabra tiene varias acepciones. Mientras que en el sistema de numeración decimal se usan diez dígitos (diez símbolos), en el binario se usan solo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores: 0 o 1. Es la unidad mínima de información en una computadora. Un bit puede estar no magnetizado apagado, de modo que su valor sea cero (0), o bien, magnetizado o encendido, de modo que su valor sea uno. Un solo bit no proporciona mucha información, pero es sorprendente lo que un conjunto de ellos puede hacer. Se puede imaginar un bit como una bombilla que puede estar en uno de los siguientes dos estados:BYTE
Es la unidad de información de base utilizada en computación y en telecomunicaciones, y que resulta equivalente a un conjunto ordenado de bits (generalmente 8 bits, por lo que en español también se le denomina octeto, aunque ésta es más bien una palabra derivada del francés octet, que hubieron de idear en dicho idioma para evitar byte, por el parecido de esta palabra con el vocablo vulgar bite, que significa 'miembro viril'). La unidad byte no tiene símbolo establecido internacionalmente, aunque en países anglosajones es frecuente representarlo como B, mientras que en los países francófonos con frecuencia se utiliza O (de octet). Un byte está compuesto por un conjunto 9 bits, el cual representa localidades de almacenamiento, tanto en memoria interna como en discos externos. Cada byte tiene una dirección única, que inicia en cero con el primer byte, en ensamblador cada byte tiene 8 bits para datos y uno de paridad.
En el ejemplo se puede observar el número 56 en decimal y el bit de paridad en 1. Un programa puede tratar a un grupo de bytes como una unidad de información, como tiempo o distancia. A un grupo de uno o más bytes que definen un valor particular se le conoce comúnmente como campo. Las computadoras también emplean ciertos tamaños que le le son naturales:
CONVERSIONES NUMÉRICAS
En la siguiente tabla se presentan las conversiones básicas:Sin embargo estas no siempre son suficientes por lo tanto se presenta seguidamente la forma de conversión entre bases numéricas:
Conversión de Decimal a Binario: Para la conversión de decimal a binario se emplean dos métodos.
Método 1 por divisiones sucesivas, el cual consiste en:
Se va dividiendo la cantidad decimal por 2, apuntando los residuos, hasta obtener un cociente cero. El último residuo obtenido es el bit más significativo (MSB) y el primero es el bit menos significativo (LSB).
Ejemplo: El resultado en binario de 15310 es 10011001
Método 2:
Convertir un número decimal al sistema binario es muy sencillo: basta con realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada división en orden inverso al que han sido obtenidos. Por ejemplo, para convertir al sistema binario el número decimal 77 haremos una serie de divisiones que arrojarán los restos siguientes:
77 / 2 = 38 Resto: 1
38 / 2 = 19 Resto: 0
19 / 2 = 9 Resto: 1
9 / 2 = 4 Resto: 1
4 / 2 = 2 Resto: 0
2 / 2 = 1 Resto: 0
1 / 2 = 0 Resto: 1
y, tomando los restos en orden inverso obtenemos la cifra binaria:
Decimal 77 = Binario 1001101
Conversión de un número decimal a octal: La conversión de un número decimal a octal se hace con la misma técnica que ya hemos utilizado en la conversión a binario, mediante divisiones sucesivas por 8 y colocando los restos obtenidos en orden inverso. Por ejemplo, para escribir en octal el número decimal 12210 tendremos que hacer las siguientes divisiones:
122 / 8 = 15 Resto: 2
15 / 8 = 1 Resto: 7
1 / 8 = 0 Resto: 1
Tomando los restos obtenidos en orden inverso tendremos la cifra octal: Decimal 122 = Octal 172
Conversión de un número decimal a hexadecimal: Utilizando la técnica habitual de divisiones sucesivas, la conversión de un número decimal a hexadecimal. Por ejemplo, para convertir a hexadecimal del número decimal 1735 será necesario hacer las siguientes divisiones:
1735 / 16 = 108 Resto: 7
108 / 16 = 6 Resto: C es decir, 12 en decimal
6 / 16 = 0 Resto: 6
De ahí que, tomando los restos en orden inverso, resolvemos el número en hexadecimal:
Decimal 1735 = hexadecimal 6C7
Conversión de Binario a Octal: Observa la tabla siguiente, con los siete primeros números expresados en los sistemas decimal, binario y octal:
Cada dígito de un número octal se representa con tres dígitos en el sistema binario. Por tanto, el modo de convertir un número entre estos sistemas de numeración equivale a "expandir" cada dígito octal a tres dígitos bi¬narios, o en "contraer" grupos de tres caracteres binarios a su correspondiente dígito octal.
Por ejemplo, para convertir el número binario 101001011 a octal tomaremos grupos de tres bits y los sustituiremos por su equivalente octal:
101 = 5 octal
001 = 1 octal
011 = 3 octal
y, de ese modo el número binario 101001011 = octal 513
La conversión de números octales a binarios se hace, siguiendo el mismo método, reemplazando cada dígito octal por los tres bits equivalentes. Por ejemplo, para convertir el número octal 750 a binario, tomaremos el equivalente binario de cada uno de sus dígitos:
7 octal = 111
5 octal = 101
0 octal = 000
y, por tanto el número octal 750 = 111101000 binario
Conversión de números binarios a hexadecimales y viceversa: Del mismo modo que hallamos la correspondencia entre números octales y binarios, podemos establecer una equivalencia directa entre cada dígito hexadecimal y cuatro dígitos binarios, como se ve en la siguiente tabla:
La conversión entre números hexadecimales y binarios se realiza "expandiendo" o "con¬trayendo" cada dígito hexadecimal a cuatro dígitos binarios. Por ejemplo, para expresar en hexadecimal el número binario 101001110011 bastará con tomar grupos de cuatro bits, empezando por la derecha, y reemplazarlos por su equivalente hexadecimal:
1010 = A
0111 = 7
0011 = 3
y, por tanto el número binario 101001110011 = al hexadecimal A73
En caso de que los dígitos binarios no formen grupos completos de cuatro dígitos, se deben añadir ceros a la izquierda hasta completar el último grupo. Por ejemplo:
101110 = 00101110 = 2E en hexadecimal
La conversión de números hexadecimales a binarios se hace del mismo modo, reemplazando cada dígito hexadecimal por los cuatro bits equivalentes de la tabla. Para convertir a binario, por ejemplo, el número hexadecimal 1F6 hallaremos en la tabla las siguientes equivalencias:
1 = 0001
F = 1111
6 = 0110
y, por lo tanto el número hexadecimal 1F6 = al binario 000111110110
OPERACIONES ARITMETICAS
Como es bien sabido las operaciones aritméticas básicas son la suma la resta la multiplicación y división, en lenguaje ensamblador se manejan algunas directivas para realizar estas operaciones entre dos registros, las más básicas serán explicadas seguidamente.
Las operaciones en aritmética binaria a entera permiten a la CPU realizar cálculos con números enteros positivos y negativos con una representación en complementos a 1 y 2.La mayor parte de las instrucciones aritméticas que se encuentran en cualquier procesador incluyen suma, resta y comparación. Aunque las operaciones aritméticas se efectúan en el sistema binario se puede trabajar con aritmética decimal codificando los dígitos del 0 al 9 en código BCD. Para poder efectuar operaciones aritméticas con estos números, muchos microprocesadores incluyen una instrucción que ajusta el resultado de la operación para obtener el resultado decimal correcto. Para esta operación de ajuste decimal es para la que se emplea el flag de acarreo(suma con acarreo).
Suma: Los microprocesadores normalmente suman un número que hay en un registro (acumulador) a un número tomado de la memoria o de otro registro y ponen el resultado en el acumulador.
Resta: En el conjunto de instrucciones de los 8086-80286 aparecen muchas formas de resta (SUB). Estas formas utilizan cualquier modo de direccionamiento con datos de 8, 16 o 32 bits. Una forma especial de la resta (decremento) resta o decremento un 1 en cualquier registro o localidad de la memoria. Casi los únicos tipos de resta no permitidos son de memoria a memoria y registro de segmento. Igual que otras instrucciones aritméticas, la instrucción para resta influye en los bits de bandera.
Comparación: La instrucción (CMP) para comparación es una resta que sólo afecta los bits de bandera. La comparación es útil para comprar el contenido de un registro o una localidad de memoria contra otro valor. La CMP suele ir seguida por una instrucción de brinco (JMP) condicional que prueba las condición de los bits de bandera. Esta instrucción se emplea para comparar un byte o palabra completos, ubicados en cualquier registro (excepto de segmento) o en la memoria.
Multiplicación: Se efectúa en bytes, palabras o dobles palabras y pueden ser enteros consigno (IMUL) o sin signo MUL). Se debe tener en cuenta que sólo en los 80386 y80486 se pueden multiplicar dobles palabras de 32 bits. El producto después de una multiplicación es siempre de doble ancho. Si se multiplican dos números de 8 bits, se genera un producto de 16 bits; si se multiplican dos números de 16 bits, se genera un producto de 32 bits y si se multiplican dos números de 32 bits, se genera un producto de 64 bits.
División: Se efectúa con números de 8 o de 16 bits y también de 32 bits. Estos números son enteros con signo (IDIV) o sin signo (D IV). El dividendo siempre es uno de doble ancho que se divide entre el operando, esto significa que en una división de 8 bits se divide un número de 16 bits entre uno de 8 bits; en una división de 16 bits se divide un número de 32 bits entre uno de 16; en la división de 32 bits se divide un número de 64 bits entre uno de 32 bits.
Aritmética para BCD y ASCII: Los datos en BCD se suman o restan en forma empacada mediante el ajuste del resultado de la suma con DAA o de la resta con DAS. Los datos en ASCII se suman, restan, multiplican o dividen cuando las operaciones se ajustan con AAA, AAS, AAM y AAD.
OPERACIONES LOGICAS
Las operaciones lógicas proporcionan en control de bits binarios en programación de <
Las instrucciones AND, OR y OR EXCLUSIVO, efectúan funciones lógicas en un byte, palabra o doble palabra almacenados en un registro o en una localidad de memoria. Todas las banderas cambian con estas instrucciones y se hacen cero (borran) acarreo (C) y sobre flujo (O).
La instrucción TEST efectúa la operación AND y el producto lógico se pierde. Esta instrucción cambia los bits de bandera para indicar el resultado de la prueba.
Las instrucciones NOT y NEG efectúan inversiones lógica y aritmética. La instrucción NOT complementa a 1 un operando y la instrucción NEG complementa a 2 un operando, lo cual significa que el signo del número cambia de positivo a negativo o viceversa.
CODIGO ASCII
ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estándar Estadounidense para el Intercambio de Información), pronunciado generalmente [áski] o [ásci] o [ásqui], es un código de caracteres basado en el alfabeto latino, tal como se usa en inglés moderno. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO/IEC 8859-1, que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 32 caracteres no imprimibles, de los cuales la mayoría son caracteres de control que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio).
Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto como el teclado.
MEMORIA ROM (Random Object Memory)
Este es un chip especial de memoria que solo puede ser leída. Ya que las instrucciones y los datos están “grabados” permanentemente en un chip ROM y no pueden ser alterados. El sistema básico de entrada/salida (BIOS) de ROM inicia en la dirección 768K y maneja los dispositivos I/O, como un controlador de disco duro. La ROM que inicia en 960K controla las funciones básicas de la computadora, como la autoprueba al encender, patrones de puntos para los gráficos y el autocargador de disco. Cuando se enciende la computadora, la ROM realiza ciertas verificaciones y carga, desde el disco, los datos especiales del sistema envía a la RAM.
MEMORIA RAM (Random Access Memory)
Los programadores generalmente estan preocupados por la memoria RAM, también denominada memoria de lecto-escritura, la RAM se dispone como una “hoja de trabajo” para almacenamiento temporal y ejecución de programas.
Ya que el contenido de la RAM se pierde cuando se apaga la computadora, se debe reservar almacenamiento externo para guardar programas y datos. Si cuando se enciende una computadora esta insertado un disco flexible con DOS o un disco duro instalado, el procedimiento de arranque en ROM carga el programa COMMAND.COM en RAM, luego se le pide al mismo realizar acciones, como cargar un programa de un disco a la RAM. Puesto que el COMMAND.COM ocupa una pequeña parte de la RAM también queda espacio para otros programas. Su programa se ejecuta en RAM y por lo general produce salida al apantalla, a la impresora o a un disco. Cuando termina, usted puede pedir al COMMAND.COM cargar otro programa en RAM, una acción que se escribe sobre el programa anterior.





