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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? kernel.asm

?? 自己動(dòng)手寫操作 系統(tǒng) 的源 代 碼 這里有完整的源代碼
?? ASM
字號(hào):

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


%include "sconst.inc"

; 導(dǎo)入函數(shù)
extern	cstart
extern	tinix_main
extern	exception_handler
extern	spurious_irq
extern	clock_handler
extern	disp_str
extern	delay

; 導(dǎo)入全局變量
extern	gdt_ptr
extern	idt_ptr
extern	p_proc_ready
extern	tss
extern	disp_pos
extern	k_reenter

bits 32

[SECTION .data]
clock_int_msg		db	"^", 0

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

[section .text]	; 代碼在此

global _start	; 導(dǎo)出 _start

global restart

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:
	; 此時(shí)內(nèi)存看上去是這樣的(更詳細(xì)的內(nèi)存情況在 LOADER.ASM 中有說(shuō)明):
	;              ┃                                    ┃
	;              ┃                 ...                ┃
	;              ┣━━━━━━━━━━━━━━━━━━┫
	;              ┃■■■■■■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 以及相應(yīng)的描述符是這樣的:
	;
	;		              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 代碼的時(shí)候一定要保證 ds, es, ss 這幾個(gè)段寄存器的值是一樣的
	; 因?yàn)榫幾g器有可能編譯出使用它們的代碼, 而編譯器默認(rèn)它們是一樣的. 比如串拷貝操作會(huì)用到 ds 和 es.
	;
	;


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

	mov	dword [disp_pos], 0

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

	lidt	[idt_ptr]

	jmp	SELECTOR_KERNEL_CS:csinit
csinit:		; “這個(gè)跳轉(zhuǎn)指令強(qiáng)制使用剛剛初始化的結(jié)構(gòu)”——<<OS:D&I 2nd>> P90.

	;jmp 0x40:0
	;ud2

	;sti

	xor	eax, eax
	mov	ax, SELECTOR_TSS
	ltr	ax

	jmp	tinix_main

	;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).
	sub	esp, 4
	pushad		; ┓
	push	ds	; ┃
	push	es	; ┣ 保存原寄存器值
	push	fs	; ┃
	push	gs	; ┛
	mov	dx, ss
	mov	ds, dx
	mov	es, dx

	;inc	byte [gs:0]	; 改變屏幕第 0 行, 第 0 列的字符

	mov	al, EOI		; ┓reenable master 8259
	out	INT_M_CTL, al	; ┛

	inc	dword [k_reenter]
	cmp	dword [k_reenter], 0
	jne	.1	; 重入時(shí)跳到.1,通常情況下順序執(zhí)行

	mov	esp, StackTop		; 切到內(nèi)核棧	┓
					;		┃
	push	restart
	;push	.restart_v2		;		┣(中斷重入不執(zhí)行的代碼)
	jmp	.2			;		┛

.1: ; 中斷重入
	push	restart_reenter
	;push	.restart_reenter_v2

.2: ; 沒(méi)有中斷重入
	sti

	push	0
	call	clock_handler
	add	esp, 4

	cli

	ret		; 重入時(shí)跳到.restart_reenter_v2,通常情況下到.restart_v2

;.restart_v2:
;	mov	esp, [p_proc_ready]	; 離開內(nèi)核棧	┓
;	lldt	[esp + P_LDT_SEL]	;		┃
;	lea	eax, [esp + P_STACKTOP]	;		┣(中斷重入不執(zhí)行的代碼)
;	mov	dword [tss + TSS3_S_SP0], eax	;	┛
;.restart_reenter_v2:			; 如果(k_reenter != 0),會(huì)跳轉(zhuǎn)到這里
;	dec	dword [k_reenter]	; k_reenter--;
;	pop	gs	; ┓
;	pop	fs	; ┃
;	pop	es	; ┣ 恢復(fù)原寄存器值
;	pop	ds	; ┃
;	popad		; ┛
;	add	esp, 4
;
;	iretd


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


; ====================================================================================
;                                   restart
; ====================================================================================
restart:
	mov	esp, [p_proc_ready]
	lldt	[esp + P_LDT_SEL] 
	lea	eax, [esp + P_STACKTOP]
	mov	dword [tss + TSS3_S_SP0], eax
restart_reenter:
	dec	dword [k_reenter]
	pop	gs
	pop	fs
	pop	es
	pop	ds
	popad
	add	esp, 4
	iretd


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品免费在线观看| 成人永久看片免费视频天堂| 国产精品女人毛片| 在线播放一区二区三区| 丰满白嫩尤物一区二区| 免费在线看成人av| 亚洲国产成人av| 国产精品免费网站在线观看| 欧美一级在线免费| 欧美唯美清纯偷拍| 成av人片一区二区| 国产精品一区二区在线观看网站| 视频一区视频二区在线观看| 亚洲免费观看高清完整版在线 | 精品国产sm最大网站免费看| 欧美吞精做爰啪啪高潮| 丁香婷婷综合激情五月色| 琪琪一区二区三区| 天堂蜜桃91精品| 午夜亚洲国产au精品一区二区 | 伦理电影国产精品| 午夜精品久久久久久久久| 亚洲欧美日韩系列| 亚洲视频一区在线观看| 国产欧美一区二区三区沐欲| 2023国产精品自拍| 欧美电影精品一区二区| 日韩一区二区中文字幕| 91精品国产入口| 91精品国产91久久久久久最新毛片| 色乱码一区二区三区88| 91丨九色丨蝌蚪富婆spa| 成人av网站免费| 白白色 亚洲乱淫| eeuss影院一区二区三区| av在线播放不卡| 99久久久久久| 一本久久a久久精品亚洲| 91一区在线观看| 91网站在线观看视频| 91色乱码一区二区三区| 色狠狠一区二区| 欧美伊人久久久久久久久影院| 在线一区二区三区做爰视频网站| 91视频免费看| 在线一区二区三区四区五区| 欧美日韩在线直播| 91精品国产综合久久香蕉麻豆| 91精品国产综合久久香蕉的特点 | 久久久亚洲综合| 久久久国际精品| 国产精品久久久久桃色tv| 国产精品久久久久桃色tv| 亚洲人成精品久久久久| 亚洲成国产人片在线观看| 日韩电影在线免费| 久久精品免费观看| 国产黄人亚洲片| 91免费版在线| 欧美一区日韩一区| 国产欧美日韩卡一| 一区二区三区欧美激情| 免费久久99精品国产| 国模无码大尺度一区二区三区| 成人黄色电影在线| 在线观看日韩电影| 精品国产乱码久久久久久老虎 | 午夜久久久久久电影| 久久电影国产免费久久电影| 福利视频网站一区二区三区| 色婷婷亚洲一区二区三区| 日韩午夜三级在线| 国产精品电影一区二区三区| 日韩中文字幕一区二区三区| 国产麻豆视频一区二区| 91啪亚洲精品| 精品国产免费一区二区三区四区| 日韩毛片一二三区| 麻豆国产精品一区二区三区| 成人精品免费看| 欧美精品欧美精品系列| 国产亚洲一本大道中文在线| 亚洲精品少妇30p| 国产自产2019最新不卡| 91在线视频免费观看| 日韩三级av在线播放| 亚洲天堂免费在线观看视频| 久久国产乱子精品免费女| 不卡的电视剧免费网站有什么| 91.麻豆视频| 亚洲欧美日韩国产中文在线| 久久99日本精品| 在线看国产一区| 国产日产欧美一区二区视频| 日本不卡高清视频| 在线观看亚洲精品| 亚洲国产精品t66y| 久久成人免费电影| 欧美喷水一区二区| 亚洲视频1区2区| 国产高清无密码一区二区三区| 8x8x8国产精品| 樱桃视频在线观看一区| 大陆成人av片| 亚洲精品一区二区三区99| 午夜在线电影亚洲一区| av午夜一区麻豆| 国产欧美日韩久久| 韩国女主播成人在线| 欧美乱妇15p| 亚洲男人天堂av| 91在线播放网址| 国产精品美女久久福利网站| 国产一区二区三区免费| 欧美一区二区三区视频在线观看| 亚洲综合丁香婷婷六月香| 99精品欧美一区二区三区综合在线| 久久精品免费在线观看| 久久99精品久久只有精品| 51精品秘密在线观看| 亚洲h精品动漫在线观看| 欧洲一区二区三区在线| 亚洲免费观看高清完整| 99久久精品免费精品国产| 国产精品网站导航| 丰满岳乱妇一区二区三区| 久久久午夜精品| 国产精品一区专区| 久久免费的精品国产v∧| 国内精品不卡在线| 2019国产精品| 国产成人夜色高潮福利影视| 久久九九全国免费| 国产一区二区精品久久| 久久久99精品免费观看不卡| 国产精品一区二区在线观看网站| 久久蜜臀中文字幕| 国产69精品久久久久毛片| 久久久不卡网国产精品一区| 国产精品资源在线观看| 亚洲国产高清不卡| av电影天堂一区二区在线| 亚洲欧美在线视频| 色婷婷亚洲一区二区三区| 亚洲小说欧美激情另类| 欧美另类z0zxhd电影| 日韩av一区二区在线影视| 欧美va天堂va视频va在线| 国产精品自拍一区| 中文字幕一区二区三区乱码在线 | 国产精品久久久久久久蜜臀| 91网站最新网址| 亚洲一区av在线| 欧美一区二区女人| 久久国产精品99久久久久久老狼| 久久九九久久九九| 色综合久久久网| 日本中文字幕一区| 久久精品人人做| 色婷婷激情一区二区三区| 亚洲成av人影院| 久久久91精品国产一区二区三区| jlzzjlzz亚洲女人18| 亚洲一区二区高清| 亚洲精品一区二区三区精华液 | 91在线观看地址| 青青草国产成人av片免费| 久久精品一二三| 欧美性色黄大片手机版| 韩国三级在线一区| 亚洲免费在线看| 欧美成人女星排行榜| 99精品视频在线观看| 石原莉奈一区二区三区在线观看| 久久综合久久鬼色| 欧美中文字幕一区二区三区| 久久精品久久精品| 亚洲欧洲日韩av| 日韩一区二区不卡| 91麻豆精品在线观看| 美女一区二区视频| 亚洲欧美激情在线| 精品毛片乱码1区2区3区| 色8久久人人97超碰香蕉987| 久久精品国产精品亚洲综合| 国产精品免费久久久久| 91精品蜜臀在线一区尤物| 91在线丨porny丨国产| 久久99国产精品久久| 一区二区三区国产| 国产人成一区二区三区影院| 欧美日韩精品三区| 成人app软件下载大全免费| 麻豆精品新av中文字幕| 夜夜嗨av一区二区三区中文字幕 | 一区二区三区四区乱视频| 久久久精品天堂| 日韩欧美国产精品| 欧美视频在线不卡| 91丝袜美腿高跟国产极品老师|