亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
美女高潮久久久| 美女mm1313爽爽久久久蜜臀| 欧美韩国日本综合| 欧美不卡激情三级在线观看| 欧美伦理影视网| 6080日韩午夜伦伦午夜伦| 欧洲生活片亚洲生活在线观看| 99re热这里只有精品视频| 国产精品自在在线| 日本一区二区电影| 欧美不卡123| 欧美性做爰猛烈叫床潮| 玖玖九九国产精品| 日本一区二区三区在线观看| 久久午夜老司机| 久久精品日韩一区二区三区| 国产午夜精品福利| 亚洲三级理论片| 亚洲自拍欧美精品| 蜜乳av一区二区| 国产一区二区在线视频| 国产成人精品影院| 91啪亚洲精品| 欧美性受xxxx黑人xyx| 欧美日韩国产一级| 日韩视频免费观看高清在线视频| 欧美不卡一区二区三区四区| 国产欧美精品一区二区色综合| 国产精品久久久久久亚洲伦| 亚洲日本成人在线观看| 亚洲va欧美va人人爽午夜| 玖玖九九国产精品| 成人激情综合网站| 欧美日韩一级片在线观看| 一本色道亚洲精品aⅴ| 国产98色在线|日韩| 日韩av不卡在线观看| 狠狠狠色丁香婷婷综合激情| 成人av在线观| 欧美精品xxxxbbbb| 久久女同性恋中文字幕| 亚洲精品中文字幕在线观看| 日本va欧美va欧美va精品| 国产成人免费高清| 欧美中文字幕一区| 精品国产伦一区二区三区免费| 国产欧美精品一区二区色综合| 一区二区三区日本| 麻豆91免费观看| 成人国产精品免费观看视频| 制服.丝袜.亚洲.另类.中文| 欧美国产国产综合| 日韩中文字幕1| 国产一区 二区 三区一级| 91成人在线免费观看| 国产欧美视频一区二区三区| 国产欧美日韩在线| 日本不卡一区二区三区 | 国产精品久久久久久亚洲伦| 日韩欧美激情一区| www.久久久久久久久| 欧美激情一区二区三区在线| 激情综合色播激情啊| 成人在线视频一区| 91黄视频在线观看| 老色鬼精品视频在线观看播放| 精品奇米国产一区二区三区| 亚洲五月六月丁香激情| 91在线看国产| 国产午夜精品一区二区三区嫩草 | 亚洲图片有声小说| 亚洲国产综合在线| 免费精品99久久国产综合精品| 94-欧美-setu| 亚洲一级电影视频| 国产成人免费视频一区| 日韩欧美在线影院| 激情五月婷婷综合| 国产午夜精品一区二区三区视频| 免费在线观看成人| 欧美剧情片在线观看| 亚洲女同ⅹxx女同tv| 久久精品国产99久久6| 日韩午夜在线影院| 亚洲一区中文日韩| 99麻豆久久久国产精品免费| 欧美高清在线一区二区| 久久99久久99小草精品免视看| 欧美日韩在线一区二区| 亚洲欧美视频在线观看视频| 日本亚洲欧美天堂免费| 欧美美女网站色| 日韩国产欧美视频| 欧美一区二区三区在| 亚洲激情综合网| 日韩免费观看高清完整版 | 成人一二三区视频| 久久久久久麻豆| 91在线免费视频观看| 精品一区二区国语对白| 中文字幕日韩欧美一区二区三区| 在线精品国精品国产尤物884a| 日韩经典一区二区| 国产精品女人毛片| 久久综合丝袜日本网| 色欧美乱欧美15图片| 激情深爱一区二区| 亚洲午夜免费福利视频| 综合网在线视频| 精品国产一区二区三区不卡| 久久99久久99小草精品免视看| 中文字幕一区二区三区在线不卡 | voyeur盗摄精品| 99国产精品久久久久| 日韩免费视频一区二区| 蜜臀a∨国产成人精品| 自拍偷拍欧美激情| 精品影视av免费| 不卡的电影网站| 成人免费在线播放视频| 粉嫩av一区二区三区在线播放 | 国产精品伦一区| 92国产精品观看| 亚洲精品老司机| 欧美性做爰猛烈叫床潮| 亚洲大片一区二区三区| 欧美一卡2卡三卡4卡5免费| 日韩电影在线观看网站| 26uuu久久天堂性欧美| 国产精品一品二品| 国产精品久久久久一区| 成人网在线播放| 亚洲综合偷拍欧美一区色| 91丨九色丨蝌蚪丨老版| 婷婷开心激情综合| 欧美一区二区三区爱爱| 激情综合色播激情啊| 自拍偷拍亚洲欧美日韩| 91国偷自产一区二区开放时间 | 日韩欧美一级特黄在线播放| 精品在线播放午夜| 日韩理论片在线| 在线欧美日韩国产| 精彩视频一区二区三区| 国产视频一区二区在线| 在线观看亚洲精品| 日韩中文字幕av电影| 国产精品免费人成网站| 色哟哟在线观看一区二区三区| 人妖欧美一区二区| 欧美v日韩v国产v| 97精品国产露脸对白| 日韩精品亚洲专区| 欧美中文字幕久久| 亚洲视频一二三| 97aⅴ精品视频一二三区| 欧美成人综合网站| 中文字幕在线观看一区| 国产欧美1区2区3区| 中文字幕乱码亚洲精品一区| 国产午夜一区二区三区| 国产精品久久久久久久久久久免费看 | 亚洲国产日韩a在线播放| 日本高清成人免费播放| 久久国产精品露脸对白| 久久婷婷成人综合色| 欧美性一二三区| 久久精品国产亚洲一区二区三区| 欧美国产欧美综合| 8x福利精品第一导航| 成人免费精品视频| 捆绑调教美女网站视频一区| 中文字幕人成不卡一区| 日韩欧美国产系列| eeuss国产一区二区三区| 精品一区二区三区免费观看| 综合av第一页| 日本一区二区久久| 日韩一区和二区| 欧美亚洲自拍偷拍| 美女免费视频一区| 亚洲精品一二三四区| 91小视频免费观看| 欧美视频日韩视频| 国产激情一区二区三区四区| 视频在线观看一区二区三区| 国产精品每日更新| 久久久蜜臀国产一区二区| 在线亚洲欧美专区二区| 91一区二区三区在线观看| 久色婷婷小香蕉久久| 琪琪久久久久日韩精品| 亚洲欧美日韩在线不卡| 中文字幕欧美国产| 91麻豆精品国产自产在线观看一区 | 亚洲伊人伊色伊影伊综合网| 亚洲男人的天堂在线aⅴ视频| 久久精品亚洲精品国产欧美kt∨| 欧美成人性战久久| 欧美伦理电影网|