zoukankan      html  css  js  c++  java
  • 方便查看 linux/kernel/asm.s

      1 /*
      2  *  linux/kernel/asm.s
      3  *
      4  *  (C) 1991  Linus Torvalds
      5  */
      6 
      7 /*
      8  * asm.s contains the low-level code for most hardware faults.
      9  * page_exception is handled by the mm, so that isn't here. This
     10  * file also handles (hopefully) fpu-exceptions due to TS-bit, as
     11  * the fpu must be properly saved/resored. This hasn't been tested.
     12  */
     13 
     14 .globl _divide_error,_debug,_nmi,_int3,_overflow,_bounds,_invalid_op
     15 .globl _double_fault,_coprocessor_segment_overrun
     16 .globl _invalid_TSS,_segment_not_present,_stack_segment
     17 .globl _general_protection,_coprocessor_error,_irq13,_reserved
     18 
     19 _divide_error:
     20         pushl $_do_divide_error
     21 no_error_code:
     22         xchgl %eax,(%esp)
     23         pushl %ebx
     24         pushl %ecx
     25         pushl %edx
     26         pushl %edi
     27         pushl %esi
     28         pushl %ebp
     29         push %ds
     30         push %es
     31         push %fs
     32         pushl $0                # "error code"
     33         lea 44(%esp),%edx
     34         pushl %edx
     35         movl $0x10,%edx
     36         mov %dx,%ds
     37         mov %dx,%es
     38         mov %dx,%fs
     39         call *%eax
     40         addl $8,%esp
     41         pop %fs
     42         pop %es
     43         pop %ds
     44         popl %ebp
     45         popl %esi
     46         popl %edi
     47         popl %edx
     48         popl %ecx
     49         popl %ebx
     50         popl %eax
     51         iret
     52 
     53 _debug:
     54         pushl $_do_int3         # _do_debug
     55         jmp no_error_code
     56 
     57 _nmi:
     58         pushl $_do_nmi
     59         jmp no_error_code
     60 
     61 _int3:
     62         pushl $_do_int3
     63         jmp no_error_code
     64 
     65 _overflow:
     66         pushl $_do_overflow
     67         jmp no_error_code
     68 
     69 _bounds:
     70         pushl $_do_bounds
     71         jmp no_error_code
     72 
     73 _invalid_op:
     74         pushl $_do_invalid_op
     75         jmp no_error_code
     76 
     77 _coprocessor_segment_overrun:
     78         pushl $_do_coprocessor_segment_overrun
     79         jmp no_error_code
     80 
     81 _reserved:
     82         pushl $_do_reserved
     83         jmp no_error_code
     84 
     85 _irq13:
     86         pushl %eax
     87         xorb %al,%al
     88         outb %al,$0xF0
     89         movb $0x20,%al
     90         outb %al,$0x20
     91         jmp 1f
     92 1:      jmp 1f
     93 1:      outb %al,$0xA0
     94         popl %eax
     95         jmp _coprocessor_error
     96 
     97 _double_fault:
     98         pushl $_do_double_fault
     99 error_code:
    100         xchgl %eax,4(%esp)              # error code <-> %eax
    101         xchgl %ebx,(%esp)               # &function <-> %ebx
    102         pushl %ecx
    103         pushl %edx
    104         pushl %edi
    105         pushl %esi
    106         pushl %ebp
    107         push %ds
    108         push %es
    109         push %fs
    110         pushl %eax                      # error code
    111         lea 44(%esp),%eax               # offset
    112         pushl %eax
    113         movl $0x10,%eax
    114         mov %ax,%ds
    115         mov %ax,%es
    116         mov %ax,%fs
    117         call *%ebx
    118         addl $8,%esp
    119         pop %fs
    120         pop %es
    121         pop %ds
    122         popl %ebp
    123         popl %esi
    124         popl %edi
    125         popl %edx
    126         popl %ecx
    127         popl %ebx
    128         popl %eax
    129         iret
    130 
    131 _invalid_TSS:
    132         pushl $_do_invalid_TSS
    133         jmp error_code
    134 
    135 _segment_not_present:
    136         pushl $_do_segment_not_present
    137         jmp error_code
    138 
    139 _stack_segment:
    140         pushl $_do_stack_segment
    141         jmp error_code
    142 
    143 _general_protection:
    144         pushl $_do_general_protection
    145         jmp error_code
    146 
  • 相关阅读:
    jQuery offset获取坐标不精确的问题
    RPG Maker VX地图随机气泡对话 Ver1.0
    Qt绘图控件qwt绘制等比例坐标图
    Java服务端极光推送整合Ios、Android
    Jpush给 iOS 平台推送 title 值失败
    java之Hibenate中监听事件的重写和二级cache缓存
    java之Hibeante中SQL语句的使用
    Hibernate注解符合主键关联关系、持久化传播、继承映射
    hibernate之数据库注解关联关系
    hibernate(四) 双向多对多映射关系
  • 原文地址:https://www.cnblogs.com/caesarxu/p/3261223.html
Copyright © 2011-2022 走看看