EXTENSION BARQUISIMETO DEPARTAMENTO DE INFORMATICA
INTEGRANTES:
Villanueva Mara C.I.: V-20469295 Mendoza Gustavo C.I.:20718056 Ctedra: Sistema Operativo I
1. Mencione y defina como est conformada la arquitectura del Procesador (Registros AX, BX, CX, DX, Registros de segmento: CS, DS, ES, SS, Registros, ndice, banderas, entre otros). 3% R): El registro CS: Es una variable de un tamao de dos bytes. Contiene el Segmento actual en que se encuentra el programa. IP, es la variable, de dos bytes tambin, que contiene el Offset actual. Esto significa, el ordenador va interpretando las secuencias de bytes, pero necesita "algo" que le indique Donde tiene que leer. La combinacin CS: IP (tal y como me refer antes en lo de segments & Offsets) contiene la direccin en la que el ordenador est interpretando informacin *en el momento*. O sea, indica la direccin de la prxima instruccin que se va a ejecutar. El registro DS y el registro ES: Sirven tambin para guardar direcciones de Segmentos, y tambin son variables de dos bytes, ser n utilizada para por ejemplo mover datos en memoria, imprimir cadenas, bueno, un etctera largusimo. Digamos que son "punteros", que apuntan a cierta zona de memoria (siempre combinado con otro que haga de Offset, claro). El registr SS: apunta a la pila, y el SP es el que contiene el offset de la pila. AX: Se suele utilizar como propsito general, indica funcin a las interrupciones, ENTRE OTRAS., y es el ms flexible, ya que ser el nico que permita multiplicaciones y divisiones. Se denomina a veces acumulador. BX: Es aquel que nos servir mucho como "handler", para abrir/cerrar archivos, entre otros, y como registro de propsito general al igual que AX, CX y DX. CX: Se suele usar como contador. DX: Suele ser el puntero, sealando haciendo el papel de Offset lugares en memoria (suele combinarse con DS en la forma DS:DX). Registro : Es aquella donde usamos Segment y Offset, dnde se guarda, que indica al ordenador esos sitios en memoria, que indica al ordenador en que punto de la memoria est, Mas Que Todo sirven para los registros, donde se trata de una serie de "variables", que contienen informacin que puede ser cambiada. Banderas: A las flags, "banderas", las agrupa un slo registro de 16 bits, aunque este no est utilizado por completo, ya que cada flag ocupa un slo bit, es decir; Se trata de varios bits, que como siempre pueden valer uno o cero, y dependiendo de su valor indican varias cosas.
2. Realice un cuadro comparativo sobre las caractersticas de la arquitectura CISC y RISC. 1% R):
CISC CARACTERISTICAS Instruccin de longitud variable. Longitud de la instruccin depende de modos de direccionamiento usado en los operandos. Instrucciones que requieren mltiples ciclos de reloj para ejecutar. Antes de que una instruccin pueda ser ejecutada los operandos deben ser buscados desde diferentes ubicaciones en memoria Predominar las instrucciones con dos operandos. Los CISC soportan cero, uno o ms operandos. Variedad de direccionamiento de operandos Registro a registro, registro a memoria y memoria a registro Mltiples modos de direccionamiento Algunos de los direccionamientos soportados son el directo de memoria, indirecto de memoria y el indexado a travs de registro
RISC Pequeo conjunto de instrucciones Posee un nmero significativamente de menor de instrucciones. Instrucciones simples Instrucciones de longitud fija La mayora de las instrucciones son de la misma longitud, lo que permite que una instruccin se busque con una operacin individual. Predominan las instrucciones que se ejecutan en un ciclo de maquina La mayora de las instrucciones se ejecutan en un solo ciclo, esto permite la implementacin de la segmentacin (Pipelining). Procesamiento de segmento Los procesadores RISC tiene la capacidad de manejar varias instrucciones al mismo tiempo, por medio de la tcnica de segmentacin o lneas de trabajo
3. Defina las instrucciones MOV, ADD, INC, CMP. 2% R): MOV: Tiene como propsito la transferencia de datos entre celdas de memoria, registros y acumulador, su sintaxis es MOV Destino,Fuente destino es el lugar a donde se movern los datos y fuente es el lugar en donde se encuentran dichos datos. ADD: Es la adicin de los operando, su sintaxis es ADD Destino,Fuente es decir; la suma de dos operadores y guarda guarda el resultado en el operando destino. INC: Es donde se puede incrementar el operando, su sintaxis INC Destino es decir; la instruccin suma 1 al operando destino y guarda el resultado en el mismo operando destino. CMP: Es donde se comparan los operando, su sintaxis CMP Destino,Fuente es decir; donde la instruccin resta el operando fuente al operando destino pero sin que este almacene el resultado de la operacin, solo se afecta el estado de las banderas. 4. Qu son interrupciones. 1% R): Es una instruccin que detiene la ejecucin de un programa para permitir el uso de la UCP a un proceso prioritario, es decir; las interrupciones ocurren muy seguidamente, por eso para lograr administrar todas las interrupciones; el computador cuenta con un espacio de memoria, llamado memoria bajo, donde all se almacenan todas las direcciones de diferentes localidad de memoria, all se encuentran un juego de instrucciones que la UPC ejecutara para despus regresar a la aplicacin en proceso. 5. Cul es el software necesario para crear un programa en lenguaje ensamblador. 1% R): Para crear un programa se requieren varias herramientas: Primero un editor para crear el programa fuente. Segundo un compilador que no es ms que un programa que "traduce" el programa fuente a un programa objeto. tercero un enlazador o linker, que genere el programa ejecutable a partir del programa objeto.
Como compilador utilizaremos el MASM (macro ensamblador de Microsoft) ya que es el ms comn, y como enlazador utilizaremos el programa link.
La extensin usada para que MASM reconozca los programas fuente en Ensamblador es .ASM; una vez traducido el programa fuente, el MASM crea un Archivo con la extensin .OBJ, este archivo contiene un "formato intermedio" del programa, llamado as porque an no es ejecutable pero tampoco es ya un Programa en lenguaje fuente. El enlazador genera, a partir de un archivo .OBJ o la combinacin de varios de estos archivos, un programa ejecutable, cuya extensin es usualmente .EXE aunque tambin puede ser .COM, dependiendo de la forma en que se ensambl.
6. Describa la estructura de un programa en lenguaje ensamblador mediante un ejemplo prctico. 2%
R): Programa:
El primer paso es iniciar el Debug, este paso consiste nicamente en teclear Debug [Enter] en el prompt del sistema operativo.
Para ensamblar un programa en el Debug se utiliza el comando "a" (assemble); cuando se utiliza este comando se le puede dar como parmetro la direccin donde se desea que se inicie el ensamblado, si se omite el parmetro el ensamblado se iniciar en la localidad especificada por CS: IP, usualmente 0100H, que es la localidad donde deben iniciar los programas con extensin .COM, y ser la localidad que utilizaremos debido a que debug solo puede crear este tipo especfico de programas.
Aunque en este momento no es necesario darle un parmetro al comando "a" es recomendable hacerlo para evitar problemas una vez que se haga uso de los registros CS: IP, por lo tanto tecleamos:
- a0100 [Enter]
Al hacer esto aparecer en la pantalla algo como: 0C1B:0100 y el cursor se Posiciona a la derecha de estos nmeros, ntese que los primeros cuatro dgitos (en sistema hexagesimal) pueden ser diferentes, pero los ltimos cuatro deben ser 0100, ya que es la direccin que indicamos como inicio. Ahora podemos introducir las instrucciones:
0C1B:0100 mov ax,0002; coloca el valor 0002 en el registro ax 0C1B:0103 mov bx,0004; coloca el valor 0004 en el registro bx 0C1B:0106 add ax,bx ;le adiciona al contenido de ax el contenido de bx 0C1B:0108 int 20 ; provoca la terminacin del programa. 0C1B:010A
No es necesario escribir los comentarios que van despus del ";". Una vez Digitado el ltimo comando, int 20, se le da [Enter] sin escribir nada ms, para Volver al prompt del debuger.
Para ejecutar el programa que escribimos se utiliza el comando "g", al utilizarlo veremos que aparece un mensaje que dice: "Program terminated normally". Naturalmente con un mensaje como ste no podemos estar seguros que el programa haya hecho la suma, pero existe una forma sencilla de verificarlo, utilizando el comando "r" del Debug podemos ver los contenidos de todos los registros del procesador, simplemente teclee:
- r [Enter]
Aparecer en pantalla cada registro con su respectivo valor actual:
AX=0006BX=0004CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000 DS=0C1BES=0C1BSS=0C1BCS=0C1BIP=010A NV UP EI PL NZ NA PO NC 0C1B:010A 0F DB Of
Existe la posibilidad de que los registros contengan valores diferentes, pero AX y BX deben ser los mismos, ya que son los que acabamos de modificar. Otra forma de ver los valores, mientras se ejecuta el programa es utilizando como parmetro para "g" la direccin donde queremos que termine la ejecucin y muestre los valores de los registros, en este caso sera: g108, esta instruccin ejecuta el programa, se detiene en la direccin 108 y muestra los contenidos de los registros. Tambin se puede llevar un seguimiento de lo que pasa en los registros utilizando el comando "t" (trace), la funcin de este comando es ejecutar lnea por lnea lo que se ensambl mostrando cada vez los contenidos de los registros. Para salir del Debug se utiliza el comando "q" (quit). Criterios a evaluar: Participacin en el foro Cmo resuelvo los ejercicios Trabajo en equipo (mximo 2 participantes o individual) Presentacin del trabajo (portada, redaccin, ortografa) Dominio de contenido (orden lgico de las ideas expuestas) Puntuacin 10 puntos Puntualidad en la entrega del trabajo a travs de la plataforma (Desde el 07-07- 2014 hasta el 27-07-2014) Mucho xito!