易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 0.11 内核学习 asm.s,机器难免出故障。


/*
 *  linux/kernel/asm.s
 *
 *  (C) 1991  Linus Torvalds
 */
/*
 * asm.s contains the low-level code for most hardware faults.
 * page_exception is handled by the mm, so that isn't here. This
 * file also handles (hopefully) fpu-exceptions due to TS-bit, as
 * the fpu must be properly saved/resored. This hasn't been tested.
 */
/*
 * asm.asm处理的主要是和硬件相关的故障。注意的是页异常是有mm模块
 * 来实现管理的,所以在这里不需要处理。此外此程序来处理fpu的异常。
 *
 */
/*
 * 全局函数的定义,主要是引用的是traps.c文件中的函数声明。
 * 下面的代码主要是对intel的保留中断int0 -- int16的处理。
 */
.globl _divide_error,_debug,_nmi,_int3,_overflow,_bounds,_invalid_op
.globl _double_fault,_coprocessor_segment_overrun
.globl _invalid_TSS,_segment_not_present,_stack_segment
.globl _general_protection,_coprocessor_error,_irq13,_reserved
# 一下的中断都是Intel得保留中断的处理程序。
#------------------------------------------------------------------------
# int0 -- 被0除所引发的中断。下面的$_do_divide_error是c函数编译之后
# 对应的模块的名称。
_divide_error:
pushl $_do_divide_error # 首先将函数入口地址压入堆栈。
no_error_code: # 标号相当于函数被下面程序调用。
xchgl %eax,(%esp) # xchgl指令的作用是交换寄存器。
# 在此的含义是将函数的地址存在
# eax中,将eax原来内容入栈。
pushl %ebx # 寄存器入栈
pushl %ecx
pushl %edx
pushl %edi
pushl %esi
pushl %ebp
push %ds
push %es
push %fs
####################################################
# 将出错码和中断返回地址入栈作为函数调用_do_divide_error
# 的参数。
pushl $0 # "error code",出错码0入栈

lea 44(%esp),%edx # 取得中断返回地址
pushl %edx # 中断返回地址入栈
#####################################################
# 下面的代码重新设置寄存器。ds和es指向的是内核代码段
# fs指向的是用户数据段。
movl $0x10,%edx
mov %dx,%ds
mov %dx,%es
mov %dx,%fs


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

linux添加路由

linux添加路由
http://baikgd.blog.163.com/blog/static/35402495200972111353827/
服务器ip(eth0)
[root@localhost net]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:E3:9A:15
inet addr:172.18.3.205 Bcast:172.18.3.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee3:9a15/64 Scope:Link
UP BR ......

Linux 脚本编写基础(二)

1.1.5 Shell命令和流程控制
在shell脚本中可以使用三类命令:
1)Unix 命令:
虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
常用命令语法及功能
echo "some text": 将文字内容打印在屏幕上
ls: 文件列表
wc –l filewc -w filewc -c fi ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号