{D7+win98, 不能用于 2000}
unit Mainunit;
antarmuka
penggunaan
Windows, pesan, sysutils, varian, kelas, grafik, kontrol, formulir,
Dialog, stdctrls;
jenis
Tform1 = class (tform)
Button1: tbutton;
Button2: tbutton;
Button3: tbutton;
Prosedur Button1Click (pengirim: Tobject);
Prosedur Button2Click (pengirim: Tobject);
Prosedur Button3Click (pengirim: Tobject);
pribadi
{Deklarasi Pribadi}
publik
{Deklarasi Publik}
akhir;
var
Form1: tform1;
pelaksanaan
{$ R *.dfm}
Kecepatan Prosedur (Hitung: Word); stdcall;
const
Exceptionused = $ 03;
var
IDT: Array [0..5] dari byte;
LPOLDGATE: DWORD;
mulai
Asm
Sidt Idt
MOV EBX, DWORD PTR [IDT+2]
Tambahkan EBX, 8*pengecualian
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 excection digunakan
MOV EBX, DWORD PTR [IDT+2]
Tambahkan EBX, 8*pengecualian
mov edx, [lpoldgate]
MOV Word PTR [EBX], DX
Shr Edx, 16d
MOV Word PTR [EBX+6], DX
jmp @@ keluar
@@ ring0code:
MOV AL, $ 34
Keluar $ 43, al
MOV Axe, Count
Keluar $ 40, al
MOV AL, AH
Keluar $ 40, al
IRETD
@@KELUAR:
akhir;
akhir;
Prosedur TFORM1.BUTTON1CLICK (Pengirim: Tobject);
mulai
Kecepatan ($ 6000); // 慢
akhir;
Prosedur TFORM1.BUTTON2CLICK (Pengirim: Tobject);
mulai
Kecepatan ($ 1044);
akhir;
Prosedur TFORM1.BUTTON3CLICK (Pengirim: Tobject);
mulai
kecepatan ($ 500);
akhir;
akhir.