{D7+Win98,不能用于2000} unit MainUnit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure speed(count:word);stdcall; const ExceptionUsed=$03; var IDT:array [0..5]of byte; lpOldGate:dword; begin asm sidt IDT mov ebx,dword ptr [IDT+2] add ebx,8*ExceptionUsed cli mov dx,word ptr [ebx+6] shl edx,16d mov dx,word ptr [ebx] mov [lpOldGate],edx mov eax,offset @@Ring0Code mov word ptr [ebx],ax shr eax,16d mov word ptr [ebx+6],ax int ExceptionUsed mov ebx,dword ptr[IDT+2] add ebx,8*ExceptionUsed mov edx,[lpOldGate] mov word ptr [ebx],dx shr edx,16d mov word ptr [ebx+6],dx jmp @@exit @@Ring0Code: mov al,$34 out $43,al mov ax,Count out $40,al mov al,ah out $40,al iretd @@exit: end; end; procedure TForm1.Button1Click(Sender: TObject); begin speed($6000);//慢 end; procedure TForm1.Button2Click(Sender: TObject); begin Speed($1044); end; procedure TForm1.Button3Click(Sender: TObject); begin speed($500); end; end.
温馨提示:喜欢本站的话,请收藏一下本站!