Hola,
Estoy intentando medir el tiempo de ejecución de un programa ensamblador 80x86.
Para ello estoy utilizando interfaz C para programar el timer. Tengo unas cuantas dudas
que agradecería si alguien pudiera aclararmelas.
Hasta ahora tengo programado el timer del siguiente modo:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
extern void calcul();
void main() {
double tiempo1,tiempo;
clrscr();
outportb(0x43,0x34);
outportb(0x40,0x00);
calcul(); /*llamada a la función de ensamblador*/
outportb(0x43,0x00);
tiempo1=inportb(0x40);
tiempo=(tiempo1/(19*65536))*1000000;
printf("nTiempo de ejecuci¢n:%f microseg",tiempo);
}
Mis dudas son:
1) Estoy utilizando el contador 0 en modo 2. ¿Es esto correcto para lo que quiero hacer?
2) Al escribir en el registro (outportb(0x40,0)) lo hago una sola vez, ¿esto escribirá
todo el registro, o debería realizar dos escrituras seguidas para escribir la parte alta y luego
la baja?
3) A la hora de leer el contador (inportb(0x40)), ¿qué información se obtiene?
¿Los tics que ha durado la ejecución del programa? ¿Cómo puedo pasar esta información a segundos?
Gracias de antemano.