亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? system_call.s

?? LINUX 0.11版內核代碼。 并有代碼分析說明。
?? S
?? 第 1 頁 / 共 2 頁
字號:
	mov eax,10h ;// ds,es 置為指向內核數據段。	mov ds,ax	mov es,ax	mov eax,17h ;// fs 置為指向局部數據段(出錯程序的數據段)。	mov fs,ax	push ret_from_sys_call ;// 把下面調用返回的地址入棧。	jmp _math_error ;// 執行C 函數math_error()(kernel/math/math_emulate.c,37);//// int7 -- 設備不存在或協處理器不存在(Coprocessor not available)。;// 如果控制寄存器CR0 的EM 標志置位,則當CPU 執行一個R_ESC 轉義指令時就會引發該中斷,這樣就;// 可以有機會讓這個中斷處理程序模擬R_ESC 轉義指令(169 行)。;// CR0 的TS 標志是在CPU 執行任務轉換時設置的。TS 可以用來確定什么時候協處理器中的內容(上下文);// 與CPU 正在執行的任務不匹配了。當CPU 在運行一個轉義指令時發現TS 置位了,就會引發該中斷。;// 此時就應該恢復新任務的協處理器執行狀態(165 行)。參見(kernel/sched.c,77)中的說明。;// 該中斷最后將轉移到標號ret_from_sys_call 處執行下去(檢測并處理信號)。align 4_device_not_available:	push ds	push es	push fs	push edx	push ecx	push ebx	push eax	mov eax,10h ;// ds,es 置為指向內核數據段。	mov ds,ax	mov es,ax	mov eax,17h ;// fs 置為指向局部數據段(出錯程序的數據段)。	mov fs,ax	push ret_from_sys_call ;// 把下面跳轉或調用的返回地址入棧。	clts ;// clear TS so that we can use math	mov eax,cr0	test eax,4h ;// EM (math emulation bit);// 如果不是EM 引起的中斷,則恢復新任務協處理器狀態,
	je  goto_math_state_restore;// 執行C 函數math_state_restore()(kernel/sched.c,77)。	push ebp	push esi	push edi	call _math_emulate ;// 調用C 函數math_emulate(kernel/math/math_emulate.c,18)。	pop edi	pop esi	pop ebp	ret ;// 這里的ret 將跳轉到ret_from_sys_call(101 行)。goto_math_state_restore:
	jmp _math_state_restore
;//// int32 -- (int 0x20) 時鐘中斷處理程序。中斷頻率被設置為100Hz(include/linux/sched.h,5),;// 定時芯片8253/8254 是在(kernel/sched.c,406)處初始化的。因此這里jiffies 每10 毫秒加1。;// 這段代碼將jiffies 增1,發送結束中斷指令給8259 控制器,然后用當前特權級作為參數調用;// C 函數do_timer(long CPL)。當調用返回時轉去檢測并處理信號。align 4_timer_interrupt:	push ds ;// save ds,es and put kernel data space	push es ;// into them. %fs is used by _system_call	push fs	push edx ;// we save %eax,%ecx,%edx as gcc doesn't	push ecx ;// save those across function calls. %ebx	push ebx ;// is saved as we use that in ret_sys_call	push eax	mov eax,10h ;// ds,es 置為指向內核數據段。	mov ds,ax	mov es,ax	mov eax,17h ;// fs 置為指向局部數據段(出錯程序的數據段)。	mov fs,ax	inc dword ptr _jiffies;// 由于初始化中斷控制芯片時沒有采用自動EOI,所以這里需要發指令結束該硬件中斷。	mov al,20h ;// EOI to interrupt controller ;//1	out 20h,al ;// 操作命令字OCW2 送0x20 端口。;// 下面3 句從選擇符中取出當前特權級別(0 或3)并壓入堆棧,作為do_timer 的參數。	mov eax,dword ptr [R_CS+esp]	and eax,3 ;// %eax is CPL (0 or 3, 0=supervisor)	push eax;// do_timer(CPL)執行任務切換、計時等工作,在kernel/shched.c,305 行實現。	call _do_timer ;// 'do_timer(long CPL)' does everything from	add esp,4 ;// task switching to accounting ...	jmp ret_from_sys_call;//// 這是sys_execve()系統調用。取中斷調用程序的代碼指針作為參數調用C 函數do_execve()。;// do_execve()在(fs/exec.c,182)。align 4_sys_execve:	lea eax,[R_EIP+esp]	push eax	call _do_execve	add esp,4 ;// 丟棄調用時壓入棧的R_EIP 值。	ret;//// sys_fork()調用,用于創建子進程,是system_call 功能2。原形在include/linux/sys.h 中。;// 首先調用C 函數find_empty_process(),取得一個進程號pid。若返回負數則說明目前任務數組;// 已滿。然后調用copy_process()復制進程。align 4_sys_fork:	call _find_empty_process ;// 調用find_empty_process()(kernel/fork.c,135)。	test eax,eax	js l2	push gs	push esi	push edi	push ebp	push eax	call _copy_process ;// 調用C 函數copy_process()(kernel/fork.c,68)。	add esp,20 ;// 丟棄這里所有壓棧內容。l2: ret;//// int 46 -- (int 0x2E) 硬盤中斷處理程序,響應硬件中斷請求IRQ14。;// 當硬盤操作完成或出錯就會發出此中斷信號。(參見kernel/blk_drv/hd.c)。;// 首先向8259A 中斷控制從芯片發送結束硬件中斷指令(EOI),然后取變量do_hd 中的函數指針放入edx;// 寄存器中,并置do_hd 為NULL,接著判斷edx 函數指針是否為空。如果為空,則給edx 賦值指向;// unexpected_hd_interrupt(),用于顯示出錯信息。隨后向8259A 主芯片送EOI 指令,并調用edx 中;// 指針指向的函數: read_intr()、write_intr()或unexpected_hd_interrupt()。_hd_interrupt:	push eax	push ecx	push edx	push ds	push es	push fs	mov eax,10h ;// ds,es 置為內核數據段。	mov ds,ax	mov es,ax	mov eax,17h ;// fs 置為調用程序的局部數據段。	mov fs,ax;// 由于初始化中斷控制芯片時沒有采用自動EOI,所以這里需要發指令結束該硬件中斷。	mov al,20h	out 0A0h,al ;// EOI to interrupt controller ;//1 ;// 送從8259A。	jmp l3 ;// give port chance to breathel3: jmp l4 ;// 延時作用。l4: xor edx,edx	xchg edx,dword ptr _do_hd ;// do_hd 定義為一個函數指針,將被賦值read_intr()或;// write_intr()函數地址。(kernel/blk_drv/hd.c);// 放到edx 寄存器后就將do_hd 指針變量置為NULL。	test edx,edx ;// 測試函數指針是否為Null。	jne l5 ;// 若空,則使指針指向C 函數unexpected_hd_interrupt()。	mov edx,dword ptr _unexpected_hd_interrupt ;// (kernel/blk_drv/hdc,237)。l5: out 20h,al ;// 送主8259A 中斷控制器EOI 指令(結束硬件中斷)。	call edx ;// "interesting" way of handling intr.	pop fs ;// 上句調用do_hd 指向的C 函數。	pop es	pop ds	pop edx	pop ecx	pop eax	iretd;//// int38 -- (int 0x26) 軟盤驅動器中斷處理程序,響應硬件中斷請求IRQ6。;// 其處理過程與上面對硬盤的處理基本一樣。(kernel/blk_drv/floppy.c)。;// 首先向8259A 中斷控制器主芯片發送EOI 指令,然后取變量do_floppy 中的函數指針放入eax;// 寄存器中,并置do_floppy 為NULL,接著判斷eax 函數指針是否為空。如為空,則給eax 賦值指向;// unexpected_floppy_interrupt (),用于顯示出錯信息。隨后調用eax 指向的函數: rw_interrupt,;// seek_interrupt,recal_interrupt,reset_interrupt 或unexpected_floppy_interrupt。_floppy_interrupt:	push eax	push ecx	push edx	push ds	push es	push fs	mov eax,10h ;// ds,es 置為內核數據段。
	mov ds,ax
	mov es,ax
	mov eax,17h ;// fs 置為調用程序的局部數據段。
	mov fs,ax
	mov al,20h ;// 送主8259A 中斷控制器EOI 指令(結束硬件中斷)。	out 20h,al ;// EOI to interrupt controller ;//1	xor eax,eax	xchg eax,dword ptr _do_floppy ;// do_floppy 為一函數指針,將被賦值實際處理C 函數程序,;// 放到eax 寄存器后就將do_floppy 指針變量置空。	test eax,eax ;// 測試函數指針是否=NULL?	jne l6 ;// 若空,則使指針指向C 函數unexpected_floppy_interrupt()。	mov eax,dword ptr _unexpected_floppy_interruptl6: call eax ;// "interesting" way of handling intr.	pop fs ;// 上句調用do_floppy 指向的函數。	pop es	pop ds	pop edx	pop ecx	pop eax	iretd;//// int 39 -- (int 0x27) 并行口中斷處理程序,對應硬件中斷請求信號IRQ7。;// 本版本內核還未實現。這里只是發送EOI 指令。_parallel_interrupt:	push eax	mov al,20h	out 20h,al	pop eax	iretdend

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲愉拍自拍另类高清精品| 色噜噜狠狠成人中文综合| 亚洲精品一二三四区| 久久久不卡网国产精品一区| 欧美精品亚洲一区二区在线播放| 91在线视频免费观看| 国产伦理精品不卡| 国产在线精品视频| 日韩成人一区二区| 日韩精品免费视频人成| 亚洲成av人影院| 石原莉奈在线亚洲二区| 午夜精品久久久久久久久久久| 一区二区三区产品免费精品久久75| 国产日韩欧美高清在线| 久久久综合视频| 久久嫩草精品久久久久| 欧美美女一区二区| 色婷婷综合久久久久中文一区二区| 色婷婷亚洲一区二区三区| 色婷婷av一区二区三区软件 | 日本一区二区三区久久久久久久久不| 欧美一区二区视频在线观看2020| 色老汉一区二区三区| 色综合天天综合网国产成人综合天 | 91国产成人在线| 国产在线精品国自产拍免费| 日本不卡视频在线| 日韩1区2区日韩1区2区| 国产91在线看| 色欧美片视频在线观看| 555夜色666亚洲国产免| 亚洲精品在线三区| 中文字幕欧美区| 一二三区精品福利视频| 亚洲午夜在线视频| 美腿丝袜亚洲综合| 成人影视亚洲图片在线| 欧美在线制服丝袜| 欧美一区二区三区在线视频| 久久久久久免费| 亚洲精品中文字幕在线观看| 日产国产高清一区二区三区| 国产在线一区二区综合免费视频| 成人在线综合网站| 欧美性欧美巨大黑白大战| 日韩三级伦理片妻子的秘密按摩| 久久久91精品国产一区二区三区| 17c精品麻豆一区二区免费| 热久久久久久久| 成人app网站| 日韩午夜电影av| 国产精品美女一区二区| 亚洲午夜电影网| 国产精品18久久久久久久网站| 色国产综合视频| 久久综合九色综合欧美亚洲| 亚洲视频在线一区| 日韩高清中文字幕一区| 成人做爰69片免费看网站| 欧美日韩免费视频| 国产精品无码永久免费888| 性感美女极品91精品| 国产成人免费av在线| 精品视频一区三区九区| 欧美性xxxxxxxx| 久久一区二区三区国产精品| 亚洲区小说区图片区qvod| 免费人成精品欧美精品 | 欧美一区二区三区视频在线| 亚洲国产成人在线| 另类综合日韩欧美亚洲| 欧美性生活一区| 亚洲欧洲精品天堂一级| 免费精品视频在线| 在线看国产一区| 国产精品欧美一区喷水| 国产乱子伦视频一区二区三区 | 国产女人18水真多18精品一级做| 一区二区中文字幕在线| 久久精品国产秦先生| 7777精品伊人久久久大香线蕉超级流畅| 国产精品免费网站在线观看| 国产精品一区二区三区99| 精品粉嫩超白一线天av| 日本视频中文字幕一区二区三区| 欧美美女网站色| 日日骚欧美日韩| 欧美在线不卡一区| 亚洲午夜av在线| 欧美伊人久久久久久久久影院 | 久久综合视频网| 免费高清在线一区| 欧美一二三四在线| 免费视频一区二区| 日韩精品一区二区三区在线| 美腿丝袜在线亚洲一区| 欧美一级一区二区| 蜜桃传媒麻豆第一区在线观看| 日韩三区在线观看| 韩国在线一区二区| 中文字幕免费在线观看视频一区| 成人一区二区视频| 日韩一区有码在线| 在线观看欧美黄色| 亚洲高清在线精品| 色诱视频网站一区| 精品无人码麻豆乱码1区2区| 久久久国际精品| www.欧美精品一二区| 亚洲激情一二三区| 欧美精品一二三区| 国产美女精品人人做人人爽| 欧美极品xxx| 欧美中文字幕一区二区三区| 亚洲va国产天堂va久久en| 欧美一区三区四区| 国产成人精品免费| 亚洲综合一区在线| 日韩欧美一区二区免费| 国产成人综合在线观看| 1区2区3区欧美| 欧美一区二区成人6969| 国内精品久久久久影院薰衣草| 中文一区在线播放 | 亚洲精品v日韩精品| 日韩欧美国产三级| 99久久婷婷国产精品综合| 午夜精品成人在线| 中文字幕一区二区三区精华液 | 欧美在线免费视屏| 日韩国产欧美在线播放| 久久综合久色欧美综合狠狠| 91精品久久久久久久99蜜桃 | 91精品国产综合久久蜜臀| 国产传媒一区在线| 日韩精品三区四区| **欧美大码日韩| 久久日韩精品一区二区五区| 色久综合一二码| 成人a区在线观看| 老司机免费视频一区二区三区| 亚洲色图欧洲色图| 久久久精品国产99久久精品芒果| 不卡在线视频中文字幕| 免费一级片91| 三级久久三级久久久| 亚洲男帅同性gay1069| 欧美激情一区二区三区不卡 | 色狠狠综合天天综合综合| 国产传媒一区在线| 免费成人av在线播放| 欧美国产禁国产网站cc| 日韩欧美在线网站| 欧美色中文字幕| 色综合 综合色| 成人动漫视频在线| 盗摄精品av一区二区三区| 蜜桃av一区二区| 国产一区不卡视频| 成人app网站| 色综合天天在线| 欧美性受xxxx黑人xyx性爽| 在线播放/欧美激情| 日韩精品一区国产麻豆| 国产亚洲精久久久久久| 国产精品高潮久久久久无| 亚洲一区视频在线| 免费观看成人鲁鲁鲁鲁鲁视频| 激情成人午夜视频| 成人精品视频.| 欧美日韩国产欧美日美国产精品| 91精品国产综合久久精品性色| 精品国产91久久久久久久妲己| 亚洲国产精品激情在线观看| 一区二区三区在线高清| 秋霞午夜鲁丝一区二区老狼| 国产精品123| 色国产综合视频| 精品国产凹凸成av人网站| 亚洲欧美中日韩| 日本aⅴ亚洲精品中文乱码| 成人免费视频视频| 欧美性猛片xxxx免费看久爱| 日韩欧美成人午夜| 亚洲久草在线视频| 激情综合网av| 在线观看精品一区| 精品国产乱码久久久久久蜜臀| 成人欧美一区二区三区黑人麻豆 | 欧美美女直播网站| 中文字幕欧美日韩一区| 午夜av区久久| 成人丝袜视频网| 日韩天堂在线观看| 综合久久久久久久| 国产精品一区二区黑丝| 欧美日韩一区高清| 亚洲免费伊人电影| 高清成人免费视频|