blob: 4805448a9fec76646761d9fbe0e4ff8b5d464c85 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
; MIT License, Copyright (c) 2021 Marvin Borner
%macro INT_REGISTER 1
dd int%1
%endmacro
%macro INT_ERR 1
int%1:
push %1
jmp int_common
%endmacro
%macro INT_NOERR 1
int%1:
push 0
push %1
jmp int_common
%endmacro
extern int_handler
int_common:
cld
pushad
push ds
push es
push fs
push gs
mov ax, 0x20
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
push esp
call int_handler
mov esp, eax
pop gs
pop fs
pop es
pop ds
popad
add esp, 8
iret
INT_NOERR 0
INT_NOERR 1
INT_NOERR 2
INT_NOERR 3
INT_NOERR 4
INT_NOERR 5
INT_NOERR 6
INT_NOERR 7
INT_ERR 8
INT_NOERR 9
INT_ERR 10
INT_ERR 11
INT_ERR 12
INT_ERR 13
INT_ERR 14
INT_NOERR 15
INT_NOERR 16
INT_ERR 17
INT_NOERR 18
INT_NOERR 19
INT_NOERR 20
INT_NOERR 21
INT_NOERR 22
INT_NOERR 23
INT_NOERR 24
INT_NOERR 25
INT_NOERR 26
INT_NOERR 27
INT_NOERR 28
INT_NOERR 29
INT_ERR 30
INT_NOERR 31
INT_NOERR 32
INT_NOERR 33
INT_NOERR 34
INT_NOERR 35
INT_NOERR 36
INT_NOERR 37
INT_NOERR 38
INT_NOERR 39
INT_NOERR 40
INT_NOERR 41
INT_NOERR 42
INT_NOERR 43
INT_NOERR 44
INT_NOERR 45
INT_NOERR 46
INT_NOERR 47
global int_table
int_table:
INT_REGISTER 0
INT_REGISTER 1
INT_REGISTER 2
INT_REGISTER 3
INT_REGISTER 4
INT_REGISTER 5
INT_REGISTER 6
INT_REGISTER 7
INT_REGISTER 8
INT_REGISTER 9
INT_REGISTER 10
INT_REGISTER 11
INT_REGISTER 12
INT_REGISTER 13
INT_REGISTER 14
INT_REGISTER 15
INT_REGISTER 16
INT_REGISTER 17
INT_REGISTER 18
INT_REGISTER 19
INT_REGISTER 20
INT_REGISTER 21
INT_REGISTER 22
INT_REGISTER 23
INT_REGISTER 24
INT_REGISTER 25
INT_REGISTER 26
INT_REGISTER 27
INT_REGISTER 28
INT_REGISTER 29
INT_REGISTER 30
INT_REGISTER 31
INT_REGISTER 32
INT_REGISTER 33
INT_REGISTER 34
INT_REGISTER 35
INT_REGISTER 36
INT_REGISTER 37
INT_REGISTER 38
INT_REGISTER 39
INT_REGISTER 40
INT_REGISTER 41
INT_REGISTER 42
INT_REGISTER 43
INT_REGISTER 44
INT_REGISTER 45
INT_REGISTER 46
INT_REGISTER 47
|