测试cpu主频的程序
在版上问了好多问题
终于把程序写出来了
但是还是有问题
在奔腾芯片上运行
测出来的主频大的夸张
在486上
打印的却是乱码
请高手看一下是怎么回事
谢谢
另外,非常感谢delphiguy
这个思路就是你提供的
我另一个号没分了
只能用这个了
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#define vk_esc 0x11b /* escape key */
#define timer 0x1c /* 时钟中断的中断号 */
int timercounter=0; /* 计时变量,每秒钟增加18。 */
/* 指向原来时钟中断处理过程入口的中断处理函数指针(句柄) */
void interrupt ( *oldhandler)();
/* 新的时钟中断处理函数 */
void interrupt newhandler( )
{
int i=0,j=0;
/* increase the global counter */
timercounter++;
/* call the old routine */
if (timercounter>18) /* 1秒钟处理一次 */
{
/* 恢复计时变量 */
asm mov i,bx
asm mov j,cx
printf("%d %d\n",i,j); /*记录每一秒钟bx cx寄存器的变化
timercounter=0;
}
oldhandler();
}
/* 设置新的时钟中断处理过程 */
void settimer(void interrupt (*intproc)())
{
oldhandler=getvect(timer);
disable(); /* 设置新的时钟中断处理过程时,禁止所有中断 */
setvect(timer,intproc);
enable(); /* 开启中断 */
}
/* 恢复原有的时钟中断处理过程 */
void killtimer()
{
disable();
setvect(timer,oldhandler);
enable();
}
void main(void)
{
settimer(newhandler); /* 修改时钟中断 */
asm mov bx ,10000
l0:
asm mov cx ,30000
l1:
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm nop
asm loop l1
asm dec bx
asm jnz l0
for (;;)
{
}
killtimer(); /* 恢复时钟中断 */
}