Advertisement
Guest User

isr.asm

a guest
Sep 1st, 2023
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extern ISR_Handler
  2.  
  3.  
  4.  
  5. %macro PUSHALL 0
  6.     push rax
  7.     push rbx
  8.     push rcx
  9.     push rdx
  10.     push rsp
  11.     push rbp
  12.     push rsi
  13.     push rdi
  14. %endmacro
  15.  
  16. %macro POPALL 0
  17.     pop rdi
  18.     pop rsi
  19.     pop rbp
  20.     pop rsp
  21.     pop rdx
  22.     pop rcx
  23.     pop rbx
  24.     pop rax
  25. %endmacro
  26.  
  27.  
  28.  
  29. ; cpu pushes to the stack: ss, esp, eflags, cs, eip
  30.  
  31. %macro ISR_NOERRORCODE 1
  32.  
  33. global X64_ISR%1:
  34. X64_ISR%1:
  35.     push  0              ; push dummy error code
  36.     push  %1             ; push interrupt number
  37.     jmp isr_common
  38.  
  39. %endmacro
  40.  
  41. %macro ISR_ERRORCODE 1
  42. global X64_ISR%1:
  43. X64_ISR%1:
  44.                         ; cpu pushes an error code to the stack
  45.     push %1             ; push interrupt number
  46.     jmp isr_common
  47.  
  48. %endmacro
  49.  
  50. ; !!! THIS FILE IS AUTOGENERATED !!!
  51. ISR_NOERRORCODE 0
  52. ISR_NOERRORCODE 1
  53. ISR_NOERRORCODE 2
  54. ISR_NOERRORCODE 3
  55. ISR_NOERRORCODE 4
  56. ISR_NOERRORCODE 5
  57. ISR_NOERRORCODE 6
  58. ISR_NOERRORCODE 7
  59. ISR_ERRORCODE 8
  60. ISR_NOERRORCODE 9
  61. ISR_ERRORCODE 10
  62. ISR_ERRORCODE 11
  63. ISR_ERRORCODE 12
  64. ISR_ERRORCODE 13
  65. ISR_ERRORCODE 14
  66. ISR_NOERRORCODE 15
  67. ISR_NOERRORCODE 16
  68. ISR_ERRORCODE 17
  69. ISR_NOERRORCODE 18
  70. ISR_NOERRORCODE 19
  71. ISR_NOERRORCODE 20
  72. ISR_ERRORCODE 21
  73. ISR_NOERRORCODE 22
  74. ISR_NOERRORCODE 23
  75. ISR_NOERRORCODE 24
  76. ISR_NOERRORCODE 25
  77. ISR_NOERRORCODE 26
  78. ISR_NOERRORCODE 27
  79. ISR_NOERRORCODE 28
  80. ISR_NOERRORCODE 29
  81. ISR_NOERRORCODE 30
  82. ISR_NOERRORCODE 31
  83. ISR_NOERRORCODE 32
  84. ISR_NOERRORCODE 33
  85. ISR_NOERRORCODE 34
  86. ISR_NOERRORCODE 35
  87. ISR_NOERRORCODE 36
  88. ISR_NOERRORCODE 37
  89. ISR_NOERRORCODE 38
  90. ISR_NOERRORCODE 39
  91. ISR_NOERRORCODE 40
  92. ISR_NOERRORCODE 41
  93. ISR_NOERRORCODE 42
  94. ISR_NOERRORCODE 43
  95. ISR_NOERRORCODE 44
  96. ISR_NOERRORCODE 45
  97. ISR_NOERRORCODE 46
  98. ISR_NOERRORCODE 47
  99. ISR_NOERRORCODE 48
  100. ISR_NOERRORCODE 49
  101. ISR_NOERRORCODE 50
  102. ISR_NOERRORCODE 51
  103. ISR_NOERRORCODE 52
  104. ISR_NOERRORCODE 53
  105. ISR_NOERRORCODE 54
  106. ISR_NOERRORCODE 55
  107. ISR_NOERRORCODE 56
  108. ISR_NOERRORCODE 57
  109. ISR_NOERRORCODE 58
  110. ISR_NOERRORCODE 59
  111. ISR_NOERRORCODE 60
  112. ISR_NOERRORCODE 61
  113. ISR_NOERRORCODE 62
  114. ISR_NOERRORCODE 63
  115. ISR_NOERRORCODE 64
  116. ISR_NOERRORCODE 65
  117. ISR_NOERRORCODE 66
  118. ISR_NOERRORCODE 67
  119. ISR_NOERRORCODE 68
  120. ISR_NOERRORCODE 69
  121. ISR_NOERRORCODE 70
  122. ISR_NOERRORCODE 71
  123. ISR_NOERRORCODE 72
  124. ISR_NOERRORCODE 73
  125. ISR_NOERRORCODE 74
  126. ISR_NOERRORCODE 75
  127. ISR_NOERRORCODE 76
  128. ISR_NOERRORCODE 77
  129. ISR_NOERRORCODE 78
  130. ISR_NOERRORCODE 79
  131. ISR_NOERRORCODE 80
  132. ISR_NOERRORCODE 81
  133. ISR_NOERRORCODE 82
  134. ISR_NOERRORCODE 83
  135. ISR_NOERRORCODE 84
  136. ISR_NOERRORCODE 85
  137. ISR_NOERRORCODE 86
  138. ISR_NOERRORCODE 87
  139. ISR_NOERRORCODE 88
  140. ISR_NOERRORCODE 89
  141. ISR_NOERRORCODE 90
  142. ISR_NOERRORCODE 91
  143. ISR_NOERRORCODE 92
  144. ISR_NOERRORCODE 93
  145. ISR_NOERRORCODE 94
  146. ISR_NOERRORCODE 95
  147. ISR_NOERRORCODE 96
  148. ISR_NOERRORCODE 97
  149. ISR_NOERRORCODE 98
  150. ISR_NOERRORCODE 99
  151. ISR_NOERRORCODE 100
  152. ISR_NOERRORCODE 101
  153. ISR_NOERRORCODE 102
  154. ISR_NOERRORCODE 103
  155. ISR_NOERRORCODE 104
  156. ISR_NOERRORCODE 105
  157. ISR_NOERRORCODE 106
  158. ISR_NOERRORCODE 107
  159. ISR_NOERRORCODE 108
  160. ISR_NOERRORCODE 109
  161. ISR_NOERRORCODE 110
  162. ISR_NOERRORCODE 111
  163. ISR_NOERRORCODE 112
  164. ISR_NOERRORCODE 113
  165. ISR_NOERRORCODE 114
  166. ISR_NOERRORCODE 115
  167. ISR_NOERRORCODE 116
  168. ISR_NOERRORCODE 117
  169. ISR_NOERRORCODE 118
  170. ISR_NOERRORCODE 119
  171. ISR_NOERRORCODE 120
  172. ISR_NOERRORCODE 121
  173. ISR_NOERRORCODE 122
  174. ISR_NOERRORCODE 123
  175. ISR_NOERRORCODE 124
  176. ISR_NOERRORCODE 125
  177. ISR_NOERRORCODE 126
  178. ISR_NOERRORCODE 127
  179. ISR_NOERRORCODE 128
  180. ISR_NOERRORCODE 129
  181. ISR_NOERRORCODE 130
  182. ISR_NOERRORCODE 131
  183. ISR_NOERRORCODE 132
  184. ISR_NOERRORCODE 133
  185. ISR_NOERRORCODE 134
  186. ISR_NOERRORCODE 135
  187. ISR_NOERRORCODE 136
  188. ISR_NOERRORCODE 137
  189. ISR_NOERRORCODE 138
  190. ISR_NOERRORCODE 139
  191. ISR_NOERRORCODE 140
  192. ISR_NOERRORCODE 141
  193. ISR_NOERRORCODE 142
  194. ISR_NOERRORCODE 143
  195. ISR_NOERRORCODE 144
  196. ISR_NOERRORCODE 145
  197. ISR_NOERRORCODE 146
  198. ISR_NOERRORCODE 147
  199. ISR_NOERRORCODE 148
  200. ISR_NOERRORCODE 149
  201. ISR_NOERRORCODE 150
  202. ISR_NOERRORCODE 151
  203. ISR_NOERRORCODE 152
  204. ISR_NOERRORCODE 153
  205. ISR_NOERRORCODE 154
  206. ISR_NOERRORCODE 155
  207. ISR_NOERRORCODE 156
  208. ISR_NOERRORCODE 157
  209. ISR_NOERRORCODE 158
  210. ISR_NOERRORCODE 159
  211. ISR_NOERRORCODE 160
  212. ISR_NOERRORCODE 161
  213. ISR_NOERRORCODE 162
  214. ISR_NOERRORCODE 163
  215. ISR_NOERRORCODE 164
  216. ISR_NOERRORCODE 165
  217. ISR_NOERRORCODE 166
  218. ISR_NOERRORCODE 167
  219. ISR_NOERRORCODE 168
  220. ISR_NOERRORCODE 169
  221. ISR_NOERRORCODE 170
  222. ISR_NOERRORCODE 171
  223. ISR_NOERRORCODE 172
  224. ISR_NOERRORCODE 173
  225. ISR_NOERRORCODE 174
  226. ISR_NOERRORCODE 175
  227. ISR_NOERRORCODE 176
  228. ISR_NOERRORCODE 177
  229. ISR_NOERRORCODE 178
  230. ISR_NOERRORCODE 179
  231. ISR_NOERRORCODE 180
  232. ISR_NOERRORCODE 181
  233. ISR_NOERRORCODE 182
  234. ISR_NOERRORCODE 183
  235. ISR_NOERRORCODE 184
  236. ISR_NOERRORCODE 185
  237. ISR_NOERRORCODE 186
  238. ISR_NOERRORCODE 187
  239. ISR_NOERRORCODE 188
  240. ISR_NOERRORCODE 189
  241. ISR_NOERRORCODE 190
  242. ISR_NOERRORCODE 191
  243. ISR_NOERRORCODE 192
  244. ISR_NOERRORCODE 193
  245. ISR_NOERRORCODE 194
  246. ISR_NOERRORCODE 195
  247. ISR_NOERRORCODE 196
  248. ISR_NOERRORCODE 197
  249. ISR_NOERRORCODE 198
  250. ISR_NOERRORCODE 199
  251. ISR_NOERRORCODE 200
  252. ISR_NOERRORCODE 201
  253. ISR_NOERRORCODE 202
  254. ISR_NOERRORCODE 203
  255. ISR_NOERRORCODE 204
  256. ISR_NOERRORCODE 205
  257. ISR_NOERRORCODE 206
  258. ISR_NOERRORCODE 207
  259. ISR_NOERRORCODE 208
  260. ISR_NOERRORCODE 209
  261. ISR_NOERRORCODE 210
  262. ISR_NOERRORCODE 211
  263. ISR_NOERRORCODE 212
  264. ISR_NOERRORCODE 213
  265. ISR_NOERRORCODE 214
  266. ISR_NOERRORCODE 215
  267. ISR_NOERRORCODE 216
  268. ISR_NOERRORCODE 217
  269. ISR_NOERRORCODE 218
  270. ISR_NOERRORCODE 219
  271. ISR_NOERRORCODE 220
  272. ISR_NOERRORCODE 221
  273. ISR_NOERRORCODE 222
  274. ISR_NOERRORCODE 223
  275. ISR_NOERRORCODE 224
  276. ISR_NOERRORCODE 225
  277. ISR_NOERRORCODE 226
  278. ISR_NOERRORCODE 227
  279. ISR_NOERRORCODE 228
  280. ISR_NOERRORCODE 229
  281. ISR_NOERRORCODE 230
  282. ISR_NOERRORCODE 231
  283. ISR_NOERRORCODE 232
  284. ISR_NOERRORCODE 233
  285. ISR_NOERRORCODE 234
  286. ISR_NOERRORCODE 235
  287. ISR_NOERRORCODE 236
  288. ISR_NOERRORCODE 237
  289. ISR_NOERRORCODE 238
  290. ISR_NOERRORCODE 239
  291. ISR_NOERRORCODE 240
  292. ISR_NOERRORCODE 241
  293. ISR_NOERRORCODE 242
  294. ISR_NOERRORCODE 243
  295. ISR_NOERRORCODE 244
  296. ISR_NOERRORCODE 245
  297. ISR_NOERRORCODE 246
  298. ISR_NOERRORCODE 247
  299. ISR_NOERRORCODE 248
  300. ISR_NOERRORCODE 249
  301. ISR_NOERRORCODE 250
  302. ISR_NOERRORCODE 251
  303. ISR_NOERRORCODE 252
  304. ISR_NOERRORCODE 253
  305. ISR_NOERRORCODE 254
  306. ISR_NOERRORCODE 255
  307.  
  308. isr_common:
  309.     PUSHALL
  310.  
  311.     ; Save CPU State
  312.     mov ax, ds
  313.     push rax
  314.  
  315.     ; Set the segdefs to kernel segment descriptor
  316.     mov ax, 0x10
  317.     mov ds, ax
  318.     mov es, ax
  319.     mov fs, ax
  320.     mov gs, ax
  321.  
  322.     ; Call the isr handler
  323.     call ISR_Handler
  324.    
  325.     pop rax
  326.     mov ds, ax
  327.     mov es, ax
  328.     mov fs, ax
  329.     mov gs, ax
  330.     POPALL
  331.  
  332.     add rsp, 8          ; Removes the pushed error code and ISR number
  333.     iretq
  334.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement