exception.asm
上传用户:qddsws
上传日期:2022-06-22
资源大小:723k
文件大小:6k
源码类别:

操作系统开发

开发平台:

C/C++

  1. [extern int_00]
  2. [global int00]
  3. int00:
  4. cli
  5.       mov eax,0x10    ; Data segment
  6.       mov ds,eax
  7.       mov es,eax
  8.  
  9.       pusha
  10.       push ds
  11.       push es
  12.       push fs
  13.       push gs
  14.     
  15.       call int_00    ; Divide by Zero #DE
  16.      
  17.       pop gs
  18.       pop fs
  19.       pop es
  20.       pop ds
  21.       popa
  22. sti
  23. iretd
  24. [extern int_01]
  25. [global _int01]
  26. _int01:
  27. cli
  28.       mov eax,0x10    ; Data segment
  29.       mov ds,eax
  30.       mov es,eax
  31.  
  32.       pusha
  33.       push ds
  34.       push es
  35.       push fs
  36.       push gs
  37.     
  38.       call int_01    
  39.      
  40.       pop gs
  41.       pop fs
  42.       pop es
  43.       pop ds
  44.       popa
  45. sti
  46.       iret
  47. [extern int_02]
  48. [global int02]
  49. int02:
  50. cli
  51.       mov eax,0x10    ; Data segment
  52.       mov ds,eax
  53.       mov es,eax
  54.  
  55.       pusha
  56.       push ds
  57.       push es
  58.       push fs
  59.       push gs
  60.     
  61.       call int_02   ;
  62.      
  63.       pop gs
  64.       pop fs
  65.       pop es
  66.       pop ds
  67.       popa
  68. sti
  69.       iret
  70. [extern int_03]
  71. [global _int03]
  72. _int03:
  73. cli
  74.       mov eax,0x10    ; Data segment
  75.       mov ds,eax
  76.       mov es,eax
  77.  
  78.       pusha
  79.       push ds
  80.       push es
  81.       push fs
  82.       push gs
  83.     
  84.       call int_03    ; 
  85.      
  86.       pop gs
  87.       pop fs
  88.       pop es
  89.       pop ds
  90.       popa
  91. sti
  92.       iret
  93. [extern int_04]
  94. [global int04]
  95. int04:
  96. cli
  97.       mov eax,0x10    ; Data segment
  98.       mov ds,eax
  99.       mov es,eax
  100.  
  101.       pusha
  102.       push ds
  103.       push es
  104.       push fs
  105.       push gs
  106.     
  107.       call int_04    ; Divide by Zero #DE
  108.      
  109.       pop gs
  110.       pop fs
  111.       pop es
  112.       pop ds
  113.       popa
  114. sti
  115.       iret
  116. [extern int_05]
  117. [global int05]
  118. int05:
  119. cli
  120.       mov eax,0x10    ; Data segment
  121.       mov ds,eax
  122.       mov es,eax
  123.  
  124.       pusha
  125.       push ds
  126.       push es
  127.       push fs
  128.       push gs
  129.     
  130.       call int_05    ; 
  131.      
  132.       pop gs
  133.       pop fs
  134.       pop es
  135.       pop ds
  136.       popa
  137. sti
  138.       iret
  139. [extern int_06]
  140. [global int06]
  141. int06:
  142. cli
  143.       mov eax,0x10    ; Data segment
  144.       mov ds,eax
  145.       mov es,eax
  146.  
  147.       pusha
  148.       push ds
  149.       push es
  150.       push fs
  151.       push gs
  152.     
  153.       call int_06    ; 
  154.      
  155.       pop gs
  156.       pop fs
  157.       pop es
  158.       pop ds
  159.       popa
  160. sti
  161.       iret
  162. [extern int_07]
  163. [global int07]
  164. int07:
  165. cli
  166.       mov eax,0x10    ; Data segment
  167.       mov ds,eax
  168.       mov es,eax
  169.  
  170.       pusha
  171.       push ds
  172.       push es
  173.       push fs
  174.       push gs
  175.     
  176.       call int_07   ; 
  177.      
  178.       pop gs
  179.       pop fs
  180.       pop es
  181.       pop ds
  182.       popa
  183. sti
  184.       iret
  185. [extern int_08]
  186. [global int08]
  187. int08:
  188. cli
  189.       mov eax,0x10    ; Data segment
  190.       mov ds,eax
  191.       mov es,eax
  192.  
  193.       pusha
  194.       push ds
  195.       push es
  196.       push fs
  197.       push gs
  198.     
  199.       call int_08    ; 
  200.      
  201.       pop gs
  202.       pop fs
  203.       pop es
  204.       pop ds
  205.       popa
  206. sti
  207.       iret
  208. [extern int_09]
  209. [global int09]
  210. int09:
  211. cli
  212.       mov eax,0x10    ; Data segment
  213.       mov ds,eax
  214.       mov es,eax
  215.  
  216.       pusha
  217.       push ds
  218.       push es
  219.       push fs
  220.       push gs
  221.     
  222.       call int_09    ; 
  223.      
  224.       pop gs
  225.       pop fs
  226.       pop es
  227.       pop ds
  228.       popa
  229. sti
  230.       iret
  231. [extern int_10]
  232. [global int10]
  233. int10:
  234. cli
  235.       mov eax,0x10    ; Data segment
  236.       mov ds,eax
  237.       mov es,eax
  238.  
  239.       pusha
  240.       push ds
  241.       push es
  242.       push fs
  243.       push gs
  244.     
  245.       call int_10    ; 
  246.      
  247.       pop gs
  248.       pop fs
  249.       pop es
  250.       pop ds
  251.       popa
  252. sti
  253.       iret
  254. [extern int_11]
  255. [global int11]
  256. int11:
  257. cli
  258.       mov eax,0x10    ; Data segment
  259.       mov ds,eax
  260.       mov es,eax
  261.  
  262.       pusha
  263.       push ds
  264.       push es
  265.       push fs
  266.       push gs
  267.     
  268.       call int_11    ; 
  269.      
  270.       pop gs
  271.       pop fs
  272.       pop es
  273.       pop ds
  274.       popa
  275. sti
  276.       iret
  277. [extern int_12]
  278. [global int12]
  279. int12:
  280. cli
  281.       mov eax,0x10    ; Data segment
  282.       mov ds,eax
  283.       mov es,eax
  284.  
  285.       pusha
  286.       push ds
  287.       push es
  288.       push fs
  289.       push gs
  290.     
  291.       call int_12    ; 
  292.      
  293.       pop gs
  294.       pop fs
  295.       pop es
  296.       pop ds
  297.       popa
  298. sti
  299.       iret
  300. [extern int_13]
  301. [global int13]
  302. int13:
  303. cli
  304.       mov eax,0x10    ; Data segment
  305.       mov ds,eax
  306.       mov es,eax
  307.  
  308.       pusha
  309.       push ds
  310.       push es
  311.       push fs
  312.       push gs
  313.     
  314.       call int_13    ; 
  315.      
  316.       pop gs
  317.       pop fs
  318.       pop es
  319.       pop ds
  320.       popa
  321. sti
  322.       iret
  323. [extern int_14]
  324. [extern hangup]
  325. [global int14]
  326. int14:
  327. cli
  328.       mov eax,0x10    ; Data segment
  329.       mov ds,eax
  330.       mov es,eax
  331.  
  332. pop ebx ; We pop the error code
  333.      
  334. pusha
  335.       push ds
  336.       push es
  337.       push fs
  338.       push gs
  339.      mov eax,cr2
  340.       call int_14    ; 
  341.       pop gs
  342.       pop fs
  343.       pop es
  344.       pop ds
  345.       popa
  346. pop eax
  347. sub eax,4
  348. push eax
  349. sti
  350.       iret
  351. ;; Exception 15 is an Intel Reserved Interrupt
  352. [extern int_16]
  353. [global int16]
  354. int16:
  355. cli
  356.       mov eax,0x10    ; Data segment
  357.       mov ds,eax
  358.       mov es,eax
  359.  
  360.       pusha
  361.       push ds
  362.       push es
  363.       push fs
  364.       push gs
  365.     
  366.       call int_16    ; 
  367.      
  368.       pop gs
  369.       pop fs
  370.       pop es
  371.       pop ds
  372.       popa
  373. sti
  374.       iret
  375. [extern int_17]
  376. [global int17]
  377. int17:
  378. cli
  379.       mov eax,0x10    ; Data segment
  380.       mov ds,eax
  381.       mov es,eax
  382.  
  383.       pusha
  384.       push ds
  385.       push es
  386.       push fs
  387.       push gs
  388.     
  389.       call int_17    ; 
  390.      
  391.       pop gs
  392.       pop fs
  393.       pop es
  394.       pop ds
  395.       popa
  396. sti
  397.       iret
  398. [extern int_18]
  399. [global int18]
  400. int18:
  401. cli
  402.       mov eax,0x10    ; Data segment
  403.       mov ds,eax
  404.       mov es,eax
  405.  
  406.       pusha
  407.       push ds
  408.       push es
  409.       push fs
  410.       push gs
  411.     
  412.       call int_18    ; 
  413.      
  414.       pop gs
  415.       pop fs
  416.       pop es
  417.       pop ds
  418.       popa
  419. sti
  420.       iret
  421. [extern int_19]
  422. [global int19]
  423. int19:
  424. cli
  425.       mov eax,0x10    ; Data segment
  426.       mov ds,eax
  427.       mov es,eax
  428.  
  429.       pusha
  430.       push ds
  431.       push es
  432.       push fs
  433.       push gs
  434.     
  435.       call int_19    ; 
  436.      
  437.       pop gs
  438.       pop fs
  439.       pop es
  440.       pop ds
  441.       popa
  442. sti
  443.       iret
  444. ;; Exceptions 20-31 are Intel Reserved Interrupts
  445. ;; E n d   o f   E x c e p t i o n s   I n t e r r u p t s