Ejercicio 1
- Resumir:
1) Lenguaje enamblador y Programación para PC IBM y compatibles. Capítulo 1: Introducción al hardware de la PC
Los bloques fundamentales de información de una PC son los bit y los bytes. Los elementos principales del hardware interno de esta son un microprocesador, la memoria y los registros; del hardware externo son los dispositivos de entrada.
BIts y Bytes
Un bit es la unidad más pequeña de información de una computadora. Un bit puede estar apagado(0) o encendido(1). Los bytes son conjuntos de 9 bits, ocho bits para datos y uno para paridad. El bit de paridad sirve para saber si el sistema está funcionando bien. A un grupo de uno o más bits que forman un valor se le conoce comunmente como campo.
Numeros Binarios
Como la computadora solo reconoce 1s y 0s trabaja en un sistema de base 2 conocido como binario. Una colección de bits puede representar cualquier valor, el valor de un número binario depende de las posiciones de los 1s y 0s. Un número binario no está limitado a 8 bit. La computadora realiza operaciones aritméticas solo en binario. Un número binario negativo se representa con un 1 en el bit de la izquierda. Un número negativo se representa en complemento a dos.
Hexadecimal
El sistema de numeración hexadecimal incluye los números del "0" al "F". El lenguaje ensamblador hace uso considerable de este formato, ya que la representación en binario de contenidos de bytes muy grandes se hace muy dificil de representar. En un programa para identificar un número hexadecimal se escribe una "H" inmediatamente después del número.
Código ASCII
El cógigo ASCII (American Standar Code for Information Interchange) es un cógigo para representar carácteres en binario en una computadora.
El procesador
El cerebro de la PC es el procesador basado en la familia 8086 de Intel, que realiza todo el procesamiento de datos e instruciones. El procesador se divide en 2 unidades lógicas: la unidad de ejecución (EU) y la unidad de interfaz del bus (BIU). La EU ejecuta las instrucciones y la BIU envía instrucciones y datos a la EU. La EU contiene una unidad aritmetica(ALU), una unidad de control(CU) y los registros.
La Memoria interna
La copmputadora posee dos tipos de memoria interna: Memoria de acceso aleatorio(RAM) y memoria de solo lectura(ROM). La ROM es un chip de memoria que solo puede ser leida y no puede ser cambiada. La RAM es como una hoja de trabajo en la cual se puede acceder de manera aleatoria a leer o grabar en cualquier sitio de esta, el contenido de esta se pierde cuando se apaga.
Segmentos y Direccionamiento
Un segmento es una área especial que inicia en un límite de un párrafo, esto es, una localidad usualemente divisible entre 16. Un segmento en modo real puede ser hasta de 64k. Los tres segmentos principales son: segmento de código, de datos y de pila. El segmento de código tiene las instrucciones que van a ser ejecutadas en un programa; el de datos tiene constantes, datos y áreas de trabajo definidas por el programador; el de pila tiene las direcciones que se necesitan guardar temporalmente.
Registros
Los registros del procesador se usan para controlar instrucciones en ejecición, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son direccionables por medio de un nombre. Un registro de segmento tiene 16 bits de longitud y facilitan un área de memoria para direccoinamiento conocida como segmento actual. Los registro de segmento son: el CS(indica donde comienzan las intrucciones de un programa), el DS(La dirección inicial del segmento de Datos), el SS(la dirección de el segmento de pila), el ES(maneja el direccionamiento de memoria de algunas operaciones con cadenas), EG y GS(registros extra).
Ejercicio 2
- Resumir:
1) Assembly Language for Intel-Based Computers.
El lenguaje ensamblador tiene el mayor parecido que hay con el lenguaje de máquina, este provee acceso directo al hardware de la PC. El Ensamblador es un programa que convierte código de ensamblador a lenguaje de máquina, también se encuentra un programa llamado "Linker" que combina los diferentes archivos que genera el Ensamblador y los une para crear un programa ejecutable. El lenguaje ensamblador tiene una relación de uno a uno con el lenguaje de máquina, esto es que una sola instrucción en lenguaje ensamblador equivale a una instrucción en lenguaje de máquina; los lenguajes de alto nivel tienen una relación de una a muchas instrucciones de máquina.
El lenguaje ensamblador no puede ser portable, ya que este depende mucho de la arquitectura de el microprocesador; los lenguajes de alto nivel en cambio son altamente portables. Además un programador en lenguaje ensamblador requiere mucho tiempo para depurar el código. Sin embargo, los programas hechos en lenguaje ensamblador son mucho más eficases ya que dan más velocidad a la hora de acceder al hardware de la computadora. El lenguaje ensamblador se usa principalmente para escribir "Drivers"(controladores) de las piezas de hardware y para optimizar programas.
Desde el punto de vista de abstracción se pueden diferenciar al menos 6 niveles en los cuales, cuanto más alto se encuentre, más abstracto es el medio, más portable y más independiente del harware:
0 - Lógica digital
1 - Microarquitectura
2 - Arquitectura del set de instrucciones
3 - Sistema Operativo
4 - Lenguaje ensamblador
5 - Lenguajes de Alto nivel
La computadora estan construidas de circuitos lógicos que solo pueden estar de dos formas:encendido o apagado. El sistema binario se usa para representar información en una computadora ya que los números binarios están basados en 2 números en donde cada bit es un 0 o un 1. El bit que está mas a la izquierda es llamado most significant bit(MSB) y el bit que se encuentra más a la derecha se llama Least significant bit(LSB). Un entero "signed"(con signo) es un entero que puede ser positivo o negativo; un entero "unsiged"(sin signo) solo puede ser positivo. La unidad básica de almacenamiento de un procesador Intel es el byte, que contiene 8 bits. Otras unidades de almacenamiento son : - palabra - palabra doble - palabra cuádruple.
Los números binarios, cuando llegan a ser muchos, son bastante difíciles de leer y de entender, es por eso que los ensambladores y los depuradores usan los números hexadecimales para representar los datos en binario. Cada número en hexadecimal representa 4 bits. Los números negativos se representan usando el "complemento a 2", esto es, buscar el inverso del número y sumarle 1. Esto también se puede con los números en hexadecimal. El valor máximo de un número en una computadora es 2 a la n menos 1.
Ejercicio 3
- Extráiga 10 términos que usted considere importantes y defínalos:
1- Registros
Los registros del procesador se usan para controlar instrucciones en ejecición, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son direccionables por medio de un nombre. Un registro de segmento tiene 16 bits de longitud y facilitan un área de memoria para direccoinamiento conocida como segmento actual. Los registro de segmento son: el CS(indica donde comienzan las intrucciones de un programa), el DS(La dirección inicial del segmento de Datos), el SS(la dirección de el segmento de pila), el ES(maneja el direccionamiento de memoria de algunas operaciones con cadenas), EG y GS(registros extra).
2- El procesador
El cerebro de la PC es el procesador basado en la familia 8086 de Intel, que realiza todo el procesamiento de datos e instruciones. El procesador se divide en 2 unidades lógicas: la unidad de ejecución (EU) y la unidad de interfaz del bus (BIU). La EU ejecuta las instrucciones y la BIU envía instrucciones y datos a la EU. La EU contiene una unidad aritmetica(ALU), una unidad de control(CU) y los registros.
3- BIts y Bytes
Un bit es la unidad más pequeña de información de una computadora. Un bit puede estar apagado(0) o encendido(1). Los bytes son conjuntos de 9 bits, ocho bits para datos y uno para paridad. El bit de paridad sirve para saber si el sistema está funcionando bien. A un grupo de uno o más bits que forman un valor se le conoce comunmente como campo.
4- Segmentos
Un segmento es una área especial que inicia en un límite de un párrafo, esto es, una localidad usualemente divisible entre 16. Un segmento en modo real puede ser hasta de 64k. Los tres segmentos principales son: segmento de código, de datos y de pila. El segmento de código tiene las instrucciones que van a ser ejecutadas en un programa; el de datos tiene constantes, datos y áreas de trabajo definidas por el programador; el de pila tiene las direcciones que se necesitan guardar temporalmente.
5- Programa Ensamblador
El Ensamblador es un programa que convierte código de ensamblador a lenguaje de máquina, también se encuentra un programa llamado "Linker" que combina los diferentes archivos que genera el Ensamblador y los une para crear un programa ejecutable.
6- MSB y LSB
El bit que está mas a la izquierda es llamado most significant bit(MSB) y el bit que se encuentra más a la derecha se llama Least significant bit(LSB).
7- Enteros "Signed" & "Unsigned"
Un entero "signed"(con signo) es un entero que puede ser positivo o negativo; un entero "unsiged"(sin signo) solo puede ser positivo.
8 - Hexadecimal
El sistema de numeración hexadecimal incluye los números del "0" al "F". El lenguaje ensamblador hace uso considerable de este formato, ya que la representación en binario de contenidos de bytes muy grandes se hace muy dificil de representar. En un programa para identificar un número hexadecimal se escribe una "H" inmediatamente después del número.
9 - Numeros Binarios
Como la computadora solo reconoce 1s y 0s trabaja en un sistema de base 2 conocido como binario. Una colección de bits puede representar cualquier valor, el valor de un número binario depende de las posiciones de los 1s y 0s. Un número binario no está limitado a 8 bit. La computadora realiza operaciones aritméticas solo en binario. Un número binario negativo se representa con un 1 en el bit de la izquierda. Un número negativo se representa en complemento a dos.
10 - Bit de Paridad
El noveno bit de un byte se le llama bit de paridad. La paridad requiere que la cuenta de "1s" en un byte sea impar, de lo contrario esto significaría que hay algún error en el hardware o un transtorno eléctrico.