⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task.s

📁 国内一位牛人自己开发的操作系统
💻 S
字号:

.global setup_task

setup_task:		/*this function setup tss, and put it into GDT*/
	movl 0x04(%esp),%eax;
	movl $(0xc0000800),%eax
	movl %eax,tss_esp0
	movl $(0x00000018),tss_ss0
	movl $(0x00),tss_ss1
	movl $(0x00),tss_ss2
	movl $(page_dir),tss_cr3
	andl $(0x3fffffff),tss_cr3

	lea gdt_table,%edi
	lea tss,%eax
	shll $(0x10),%eax
	addl $(tss_end-tss),%eax
	lea tss,%edx
	movl %edx,%ecx
	shrl $(0x10),%ecx
	movb %cl,%dl
	andl $(0xff0000ff),%edx
	orl  $(0x00008900),%edx
	movl %eax,1*8(%edi)
	movl %edx,4+1*8(%edi)
	
	lgdt gdt_descr
	movw $(0x08),%ax
	ltr %ax

	ret

.align 16
tss:
	.long 0 				/*00:	(0,LINK)*/
tss_esp0:
	.long 0xc0000800			/*04:	ESP0  	*/
tss_ss0:
	.long 0x18 				/*08:	(0,SS0)	*/
tss_esp1:
	.long 0 				/*0C:	ESP1	*/
tss_ss1:
	.long 0 				/*10:	(0,SS1)	*/
tss_esp2:
	.long 0 				/*14:	ESP2	*/
tss_ss2:
	.long 0 				/*18:	(0,SS2)	*/
tss_cr3:
	.long 0 				/*1C:	CR3	*/
tss_reg:
	.long 0 				/*20:	EIP	*/
	.long 0 				/*24:	EEFLAG	*/
	.long 0 				/*28:	EAX	*/
	.long 0 				/*2C:	ECX	*/
	.long 0 				/*30:	EDX	*/
	.long 0 				/*34:	EBX	*/
	.long 0					/*38:	ESP	*/
	.long 0 				/*3C:	EBP	*/
	.long 0 				/*40:	ESI	*/
	.long 0 				/*44:	EDI	*/
	.long 0x2b				/*48:	(0,ES)	*/
	.long 0x23 				/*4C:	(0,CS)	*/
	.long 0x2b 				/*50:	(0,SS)	*/
	.long 0x2b				/*54:	(0,DS)	*/
	.long 0x2b 				/*58:	(0,FS)	*/
	.long 0x2b 				/*5C:	(0,GS)	*/
	.long 0 				/*60:	(0,LDT)	*/
	.long 0 				/*64:	(IObitmap, 0T*/
	.org tss+0x70
tss_end:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -