Tarea Clase 1(Esta tarea debe ser desarrollada a mano alzada, no se aceptaran en ningún formato digital):
1) ¿Que es un Bit, Nibble, Byte y word?
2) Hacer el diagrama de bloques de un computador convencional(PC)(básico).
3) Hacer el diagrama de bloques de la arquitectura interna de una CPU(básico).
4) Hacer un cuadro comparativo entre CISC y RISC, buscando diferencias(hacer conclusiones y determinar cual es mejor desde el punto de vista actual, ademas de esto escribir cual ha sido la tendencia desde el surgimiento de los primeros procesadores y ¿por que?).
5) Que procesadores actuales se basan la arquitectura CISC y que procesadores se basan en la arquitectura RISC.
Tarea 2(Esta tarea debe desarrollarse utilizando software, y se debe hacer un informe de resultados a mano)
Guiarse de: Manual 1
1) Descargue e instale el MINGW http://sourceforge.net/projects/mingw/ , si trabaja sobre linux no tiene que hacer esto.
2) Registre el path del mingw en las variables del sistema como lo dice el manual del siguiente link, (clic aqui)(Pag 48).
3) Ahora escriba el siguiente código en un archivo que usted llame "tarea2.c"
#define PI 3.1416
int main(void)
{
float area, radio;
radio = 10;
area = PI * (radio * radio);
printf("Circulo.\n");
printf("%s%f\n\n", "Area de circulo radio 10: ", area);
}
-Abra la consola "CMD" y ubíquese en la ruta donde se encuentra el archivo "tarea2.c", y escriba
$ gcc tarea2.c -o tarea2.exe
$ tarea2.exe
¿que se hace en las lineas de codigo anteriores?
-Ahora escriba la siguientes lineas de codigo
$ file tarea2.exe
¿que podemos ver en la consola?
-Escriba lo siguiente:
$ gcc -S tarea2.c
$ more tarea2.s
¿que diferencias hay entre utilizar gcc con "-c" y "-s"?
¿que hace el comando "more"?
4) transcriba el siguiente codigo ensamblador(MASM) a uno compatible con gcc(ayudarse del siguiente manual) en un archivo llamado "tarea2_a.s".
¿que diferencias encuentra entre escribir código ensamblador utilizando MASM y GCC?, sea especifico y indique todas las diferencias.
¿que hace el encabezado ".data", ".stack" y que es "msgHello DB"?
5) Escriba el siguiente código y guarde el archivo con el nombre "tarea2_b.c" y ejecute el comando "gcc -S tarea2_b.c"
int main(void)
{
int i=100;
__asm__ ("movl %0, %%eax" : : "g" (i));
}
¿cual es el código ensamblador que se genera en el .s y que hace el codigo?
¿Que función cumple el %0?
¿Que representa el ”g” ?
¿que hace el código escrito?
¿porque puedo y para que es útil escribir en ensamblador en lenguaje ANSI-C?(escriba ventajas)