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

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

?? kernel.asm

?? 自己動手寫操作 系統 的源 代 碼 這里有完整的源代碼
?? ASM
字號:

; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;                               kernel.asm
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;                                                     Forrest Yu, 2005
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


SELECTOR_KERNEL_CS	equ	8

; 導入函數
extern	cstart
extern	exception_handler
extern	spurious_irq

; 導入全局變量
extern	gdt_ptr
extern	idt_ptr
extern	disp_pos

bits 32

[SECTION .bss]
StackSpace		resb	2 * 1024
StackTop:		; 棧頂

[section .text]	; 代碼在此

global _start	; 導出 _start

global	divide_error
global	single_step_exception
global	nmi
global	breakpoint_exception
global	overflow
global	bounds_check
global	inval_opcode
global	copr_not_available
global	double_fault
global	copr_seg_overrun
global	inval_tss
global	segment_not_present
global	stack_exception
global	general_protection
global	page_fault
global	copr_error
global	hwint00
global	hwint01
global	hwint02
global	hwint03
global	hwint04
global	hwint05
global	hwint06
global	hwint07
global	hwint08
global	hwint09
global	hwint10
global	hwint11
global	hwint12
global	hwint13
global	hwint14
global	hwint15


_start:
	; 此時內存看上去是這樣的(更詳細的內存情況在 LOADER.ASM 中有說明):
	;              ┃                                    ┃
	;              ┃                 ...                ┃
	;              ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃■■■■■■Page  Tables■■■■■■┃
	;              ┃■■■■■(大小由LOADER決定)■■■■┃ PageTblBase
	;    00101000h ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃■■■■Page Directory Table■■■■┃ PageDirBase = 1M
	;    00100000h ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃□□□□ Hardware  Reserved □□□□┃ B8000h ← gs
	;       9FC00h ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃■■■■■■■LOADER.BIN■■■■■■┃ somewhere in LOADER ← esp
	;       90000h ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃■■■■■■■KERNEL.BIN■■■■■■┃
	;       80000h ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃■■■■■■■■KERNEL■■■■■■■┃ 30400h ← KERNEL 入口 (KernelEntryPointPhyAddr)
	;       30000h ┣━━━━━━━━━━━━━━━━━━┫
	;              ┋                 ...                ┋
	;              ┋                                    ┋
	;           0h ┗━━━━━━━━━━━━━━━━━━┛ ← cs, ds, es, fs, ss
	;
	;
	; GDT 以及相應的描述符是這樣的:
	;
	;		              Descriptors               Selectors
	;              ┏━━━━━━━━━━━━━━━━━━┓
	;              ┃         Dummy Descriptor           ┃
	;              ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃         DESC_FLAT_C    (0~4G)     ┃   8h = cs
	;              ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃         DESC_FLAT_RW   (0~4G)     ┃  10h = ds, es, fs, ss
	;              ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃         DESC_VIDEO                 ┃  1Bh = gs
	;              ┗━━━━━━━━━━━━━━━━━━┛
	;
	; 注意! 在使用 C 代碼的時候一定要保證 ds, es, ss 這幾個段寄存器的值是一樣的
	; 因為編譯器有可能編譯出使用它們的代碼, 而編譯器默認它們是一樣的. 比如串拷貝操作會用到 ds 和 es.
	;
	;


	; 把 esp 從 LOADER 挪到 KERNEL
	mov	esp, StackTop	; 堆棧在 bss 段中

	mov	dword [disp_pos], 0

	sgdt	[gdt_ptr]	; cstart() 中將會用到 gdt_ptr
	call	cstart		; 在此函數中改變了gdt_ptr,讓它指向新的GDT
	lgdt	[gdt_ptr]	; 使用新的GDT

	lidt	[idt_ptr]

	jmp	SELECTOR_KERNEL_CS:csinit
csinit:		; “這個跳轉指令強制使用剛剛初始化的結構”——<<OS:D&I 2nd>> P90.

	;jmp 0x40:0
	;ud2

	sti

	hlt


; 中斷和異常 -- 硬件中斷
; ---------------------------------
%macro	hwint_master	1
	push	%1
	call	spurious_irq
	add	esp, 4
	hlt
%endmacro


ALIGN	16
hwint00:		; Interrupt routine for irq 0 (the clock).
	hwint_master	0

ALIGN	16
hwint01:		; Interrupt routine for irq 1 (keyboard)
	hwint_master	1

ALIGN	16
hwint02:		; Interrupt routine for irq 2 (cascade!)
	hwint_master	2

ALIGN	16
hwint03:		; Interrupt routine for irq 3 (second serial)
	hwint_master	3

ALIGN	16
hwint04:		; Interrupt routine for irq 4 (first serial)
	hwint_master	4

ALIGN	16
hwint05:		; Interrupt routine for irq 5 (XT winchester)
	hwint_master	5

ALIGN	16
hwint06:		; Interrupt routine for irq 6 (floppy)
	hwint_master	6

ALIGN	16
hwint07:		; Interrupt routine for irq 7 (printer)
	hwint_master	7

; ---------------------------------
%macro	hwint_slave	1
	push	%1
	call	spurious_irq
	add	esp, 4
	hlt
%endmacro
; ---------------------------------

ALIGN	16
hwint08:		; Interrupt routine for irq 8 (realtime clock).
	hwint_slave	8

ALIGN	16
hwint09:		; Interrupt routine for irq 9 (irq 2 redirected)
	hwint_slave	9

ALIGN	16
hwint10:		; Interrupt routine for irq 10
	hwint_slave	10

ALIGN	16
hwint11:		; Interrupt routine for irq 11
	hwint_slave	11

ALIGN	16
hwint12:		; Interrupt routine for irq 12
	hwint_slave	12

ALIGN	16
hwint13:		; Interrupt routine for irq 13 (FPU exception)
	hwint_slave	13

ALIGN	16
hwint14:		; Interrupt routine for irq 14 (AT winchester)
	hwint_slave	14

ALIGN	16
hwint15:		; Interrupt routine for irq 15
	hwint_slave	15



; 中斷和異常 -- 異常
divide_error:
	push	0xFFFFFFFF	; no err code
	push	0		; vector_no	= 0
	jmp	exception
single_step_exception:
	push	0xFFFFFFFF	; no err code
	push	1		; vector_no	= 1
	jmp	exception
nmi:
	push	0xFFFFFFFF	; no err code
	push	2		; vector_no	= 2
	jmp	exception
breakpoint_exception:
	push	0xFFFFFFFF	; no err code
	push	3		; vector_no	= 3
	jmp	exception
overflow:
	push	0xFFFFFFFF	; no err code
	push	4		; vector_no	= 4
	jmp	exception
bounds_check:
	push	0xFFFFFFFF	; no err code
	push	5		; vector_no	= 5
	jmp	exception
inval_opcode:
	push	0xFFFFFFFF	; no err code
	push	6		; vector_no	= 6
	jmp	exception
copr_not_available:
	push	0xFFFFFFFF	; no err code
	push	7		; vector_no	= 7
	jmp	exception
double_fault:
	push	8		; vector_no	= 8
	jmp	exception
copr_seg_overrun:
	push	0xFFFFFFFF	; no err code
	push	9		; vector_no	= 9
	jmp	exception
inval_tss:
	push	10		; vector_no	= A
	jmp	exception
segment_not_present:
	push	11		; vector_no	= B
	jmp	exception
stack_exception:
	push	12		; vector_no	= C
	jmp	exception
general_protection:
	push	13		; vector_no	= D
	jmp	exception
page_fault:
	push	14		; vector_no	= E
	jmp	exception
copr_error:
	push	0xFFFFFFFF	; no err code
	push	16		; vector_no	= 10h
	jmp	exception

exception:
	call	exception_handler
	add	esp, 4*2	; 讓棧頂指向 EIP,堆棧中從頂向下依次是:EIP、CS、EFLAGS
	hlt




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久久久久| 日韩专区一卡二卡| 亚洲第一激情av| 国产精品一品视频| 欧美精品在线观看一区二区| 欧美激情一区二区三区| 美女视频黄频大全不卡视频在线播放 | 色婷婷国产精品| 久久综合九色综合97_久久久| 一区二区三区在线播放| 国产激情精品久久久第一区二区 | 亚洲 欧美综合在线网络| 成人99免费视频| 久久久久国色av免费看影院| 日本不卡1234视频| 精品视频在线视频| 中文字幕在线观看不卡| 国产一区二区精品久久91| 51精品国自产在线| 亚洲国产成人91porn| 色综合激情五月| 亚洲综合网站在线观看| 一本久道久久综合中文字幕| 国产欧美日韩另类一区| 国产精品资源在线看| 精品三级在线观看| 美女一区二区久久| 日韩免费高清视频| 麻豆国产精品一区二区三区 | 91一区二区三区在线观看| 久久久久亚洲综合| 国产成人免费视频精品含羞草妖精| 91精品视频网| 卡一卡二国产精品| 久久久噜噜噜久久人人看 | 丝袜亚洲精品中文字幕一区| 欧美亚洲综合网| 日韩激情一区二区| 制服丝袜激情欧洲亚洲| 男女性色大片免费观看一区二区| 9191成人精品久久| 日韩精品一级二级| 欧美mv日韩mv国产网站app| 久久精品二区亚洲w码| 精品sm在线观看| 成人午夜精品在线| 亚洲欧洲综合另类在线| 欧美天天综合网| 另类小说色综合网站| 精品国产sm最大网站免费看| 国产成人综合亚洲网站| 亚洲欧洲精品天堂一级| 欧美亚洲一区三区| 蜜芽一区二区三区| 久久精品欧美一区二区三区麻豆| 成人av免费观看| 婷婷六月综合亚洲| 久久久91精品国产一区二区三区| 成人免费高清在线| 天天亚洲美女在线视频| 久久久精品免费网站| 97精品久久久久中文字幕| 亚洲成人高清在线| 26uuu国产电影一区二区| 99久久99久久综合| 日本va欧美va瓶| 欧美激情一区三区| 91精品国产综合久久久久久久久久| 另类欧美日韩国产在线| 亚洲日本va午夜在线电影| 欧美一区二区三区免费视频| 不卡的av在线播放| 日本强好片久久久久久aaa| 国产精品久久久久毛片软件| 欧美色电影在线| 国产乱码字幕精品高清av| 亚洲综合久久av| 中文字幕乱码久久午夜不卡| 制服.丝袜.亚洲.另类.中文| gogo大胆日本视频一区| 久久国产精品99久久久久久老狼 | av不卡在线播放| 日本女优在线视频一区二区 | 国产日韩v精品一区二区| 欧美主播一区二区三区| 狠狠色丁香久久婷婷综合丁香| 亚洲视频一二三区| 国产欧美日韩激情| 日韩一级二级三级| 精品视频123区在线观看| 成人国产精品视频| 精品在线一区二区| 秋霞电影网一区二区| 亚洲一二三区视频在线观看| 国产精品色婷婷| 久久久久久久av麻豆果冻| 日韩精品一区二区三区四区视频| 日本道色综合久久| 99精品久久99久久久久| 高清日韩电视剧大全免费| 久久草av在线| 日本欧美在线观看| 日韩电影免费一区| 午夜精品福利一区二区三区蜜桃| 国产精品久久久久久久久久免费看| 精品99久久久久久| 久久综合成人精品亚洲另类欧美 | 国产自产视频一区二区三区| 日本午夜精品一区二区三区电影 | 国产黑丝在线一区二区三区| 久久se这里有精品| 免费在线观看一区二区三区| 奇米四色…亚洲| 麻豆免费看一区二区三区| 日韩精品三区四区| 男人的天堂久久精品| 裸体歌舞表演一区二区| 狠狠色狠狠色综合系列| 国产精品综合久久| 成人av在线电影| 91麻豆产精品久久久久久| 欧美午夜不卡视频| 日韩一级免费观看| 久久女同性恋中文字幕| 国产精品萝li| 亚洲激情图片小说视频| 亚洲自拍偷拍综合| 首页综合国产亚洲丝袜| 美腿丝袜亚洲色图| 丁香婷婷深情五月亚洲| 97久久超碰国产精品电影| 欧美日韩综合在线| 日韩免费一区二区三区在线播放| 精品久久人人做人人爱| 欧美激情在线一区二区三区| 亚洲日本免费电影| 日本美女一区二区三区| 国产精品亚洲一区二区三区妖精| 国产成人精品亚洲777人妖 | 日韩一级在线观看| 久久综合色播五月| 亚洲欧美一区二区三区久本道91| 亚洲午夜精品17c| 激情偷乱视频一区二区三区| 成人网在线播放| 欧美三级电影网站| 国产日产精品一区| 亚洲第一福利视频在线| 国产成人精品一区二区三区四区 | 国产三级精品视频| 亚洲免费在线看| 久久国产精品一区二区| 91在线观看美女| 6080国产精品一区二区| 中文av字幕一区| 日韩av中文在线观看| 不卡欧美aaaaa| 日韩欧美在线综合网| 亚洲人吸女人奶水| 精品一区二区日韩| 91老师片黄在线观看| 久久综合狠狠综合| 日欧美一区二区| av高清不卡在线| 26uuu精品一区二区三区四区在线| 亚洲激情av在线| 丁香婷婷综合激情五月色| 日韩欧美国产综合| 亚洲综合在线观看视频| 高清不卡一区二区在线| 欧美一区二区三区日韩| 樱桃国产成人精品视频| 成人网页在线观看| 久久男人中文字幕资源站| 丝袜亚洲另类丝袜在线| 一本久久综合亚洲鲁鲁五月天| 日本一区二区视频在线| 捆绑变态av一区二区三区| 欧美手机在线视频| **网站欧美大片在线观看| 国产精品一二三| 精品国产免费久久| 美腿丝袜亚洲一区| 欧美高清性hdvideosex| 一区二区不卡在线播放 | 亚洲精品久久嫩草网站秘色| 国产精品一区二区在线观看不卡| 6080yy午夜一二三区久久| 亚洲国产裸拍裸体视频在线观看乱了| 不卡的av在线播放| 国产精品久久久久久久裸模| 国产精品18久久久久| 久久久亚洲欧洲日产国码αv| 免费在线观看精品| 日韩女优av电影在线观看| 另类的小说在线视频另类成人小视频在线| 欧美日韩午夜在线| 亚州成人在线电影| 69p69国产精品| 婷婷国产在线综合|