Universidad de Costa Rica
|
|
Ejecución de
FOR numero := 1 TO N DO BEGIN
suma := 0;
temp := numero;
WHILE temp <> 0 DO BEGIN
digito := temp MOD 10; { <- }
suma := suma + (digito * digito * digito);
temp := temp DIV 10;
END;
END;
VAR val
numero: 153
temp: 15
suma: 27
digito: 3
Armstrong.pas
Para enseñar programación de computadores, algunos profesores usan este bloque de código que contiene las instrucciones de programación más importantes. Por ejemplo, puede consultar:
http://www.di-mare.com/adolfo/p/princinf.htm
A partir de este bloque de código obtenga 2 programas, uno escrito en Pascal y otro en C++. Escoja y use 2 compiladores para obtener el lenguaje ensamblador para cada versión del programa. Asegúrese de quitarle las opciones de optimización de código a cada compilador antes de correrlo y obtener resultados.
Tome el código ensamblador que ha obtenido para cada versión del programa y modifíquelo incluyéndole comentarios explicativos que muestres la correspondencia entre el programa fuente y el que produce cada compilador. Luego compare los resultados obtenidos, y destaque las diferencias importanes que encuentre. Haga un concienzudo análisis de los resultados obtenidos y describa con exactitud las conclusiones a las que llega.
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
Tiempo de entrega: | 3 días | |
Modalidad: | En parejas |
Adolfo Di Mare <adolfo@di-mare.com>.
|