{d7+win98, 不能用于 2000}
단위 메인 유닛;
인터페이스
용도
창, 메시지, 시스템, 변형, 클래스, 그래픽, 컨트롤, 양식,
대화, stdctrls;
유형
tform1 = 클래스 (tform)
버튼 1 : tbutton;
버튼 2 : tbutton;
버튼 3 : tbutton;
절차 버튼 1Click (sender : tobject);
절차 button2click (sender : tobject);
절차 버튼 3Click (sender : tobject);
사적인
{개인 선언}
공공의
{공개 선언}
끝;
var
form1 : tform1;
구현
{$ r *.dfm}
절차 속도 (count : Word); stdcall;
Const
예외 = $ 03;
var
IDT : 바이트의 배열 [0..5];
lpoldgate : dword;
시작하다
ASM
Sidt Idt
Mov Ebx, dword ptr [idt+2]
EBX, 8*Exceptioned를 추가하십시오
클리
Mov DX, Word PTR [EBX+6]
Shl Edx, 16d
Mov DX, Word Ptr [ebx]
Mov [lpoldgate], edx
Mov EAX, 오프셋 @@ ring0code
Mov Word Ptr [ebx], 도끼
SHR EAX, 16D
Mov Word Ptr [EBX+6], AX
int 예외
Mov Ebx, dword ptr [idt+2]
EBX, 8*Exceptioned를 추가하십시오
Mov Edx, [lpoldgate]
Mov Word Ptr [ebx], dx
SHR EDX, 16D
Mov Word Ptr [EBX+6], DX
jmp @@ exit
@@ ring0code :
Mov al, $ 34
$ 43, al
Mov Ax, Count
$ 40, al
Mov Al, 아
$ 40, al
Iretd
@@출구:
끝;
끝;
절차 tform1.Button1click (sender : tobject);
시작하다
속도 ($ 6000); // 慢
끝;
절차 tform1.Button2Click (sender : tobject);
시작하다
속도 ($ 1044);
끝;
절차 tform1.Button3Click (sender : tobject);
시작하다
속도 ($ 500);
끝;
끝.