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

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

?? setup.s

?? linux0.11內(nèi)核源代碼,學(xué)習(xí)內(nèi)核入門必看
?? S
字號:
!!	setup.s		(C) 1991 Linus Torvalds!! setup.s is responsible for getting the system data from the BIOS,! and putting them into the appropriate places in system memory.! both setup.s and system has been loaded by the bootblock.!! This code asks the bios for memory/disk/other parameters, and! puts them in a "safe" place: 0x90000-0x901FF, ie where the! boot-block used to be. It is then up to the protected mode! system to read them from there before the area is overwritten! for buffer-blocks.!! NOTE! These had better be the same as in bootsect.s!INITSEG  = 0x9000	! we move boot here - out of the waySYSSEG   = 0x1000	! system loaded at 0x10000 (65536).SETUPSEG = 0x9020	! this is the current segment.globl begtext, begdata, begbss, endtext, enddata, endbss.textbegtext:.databegdata:.bssbegbss:.textentry startstart:! ok, the read went well so we get current cursor position and save it for! posterity.	mov	ax,#INITSEG	! this is done in bootsect already, but...	mov	ds,ax	mov	ah,#0x03	! read cursor pos	xor	bh,bh	int	0x10		! save it in known place, con_init fetches	mov	[0],dx		! it from 0x90000.! Get memory size (extended mem, kB)	mov	ah,#0x88	int	0x15	mov	[2],ax! Get video-card data:	mov	ah,#0x0f	int	0x10	mov	[4],bx		! bh = display page	mov	[6],ax		! al = video mode, ah = window width! check for EGA/VGA and some config parameters	mov	ah,#0x12	mov	bl,#0x10	int	0x10	mov	[8],ax	mov	[10],bx	mov	[12],cx! Get hd0 data	mov	ax,#0x0000	mov	ds,ax	lds	si,[4*0x41]	mov	ax,#INITSEG	mov	es,ax	mov	di,#0x0080	mov	cx,#0x10	rep	movsb! Get hd1 data	mov	ax,#0x0000	mov	ds,ax	lds	si,[4*0x46]	mov	ax,#INITSEG	mov	es,ax	mov	di,#0x0090	mov	cx,#0x10	rep	movsb! Check that there IS a hd1 :-)	mov	ax,#0x01500	mov	dl,#0x81	int	0x13	jc	no_disk1	cmp	ah,#3	je	is_disk1no_disk1:	mov	ax,#INITSEG	mov	es,ax	mov	di,#0x0090	mov	cx,#0x10	mov	ax,#0x00	rep	stosbis_disk1:! now we want to move to protected mode ...	cli			! no interrupts allowed !! first we move the system to it's rightful place	mov	ax,#0x0000	cld			! 'direction'=0, movs moves forwarddo_move:	mov	es,ax		! destination segment	add	ax,#0x1000	cmp	ax,#0x9000	jz	end_move	mov	ds,ax		! source segment	sub	di,di	sub	si,si	mov 	cx,#0x8000	rep	movsw	jmp	do_move! then we load the segment descriptorsend_move:	mov	ax,#SETUPSEG	! right, forgot this at first. didn't work :-)	mov	ds,ax	lidt	idt_48		! load idt with 0,0	lgdt	gdt_48		! load gdt with whatever appropriate! that was painless, now we enable A20	call	empty_8042	mov	al,#0xD1		! command write	out	#0x64,al	call	empty_8042	mov	al,#0xDF		! A20 on	out	#0x60,al	call	empty_8042! well, that went ok, I hope. Now we have to reprogram the interrupts :-(! we put them right after the intel-reserved hardware interrupts, at! int 0x20-0x2F. There they won't mess up anything. Sadly IBM really! messed this up with the original PC, and they haven't been able to! rectify it afterwards. Thus the bios puts interrupts at 0x08-0x0f,! which is used for the internal hardware interrupts as well. We just! have to reprogram the 8259's, and it isn't fun.	mov	al,#0x11		! initialization sequence	out	#0x20,al		! send it to 8259A-1	.word	0x00eb,0x00eb		! jmp $+2, jmp $+2	out	#0xA0,al		! and to 8259A-2	.word	0x00eb,0x00eb	mov	al,#0x20		! start of hardware int's (0x20)	out	#0x21,al	.word	0x00eb,0x00eb	mov	al,#0x28		! start of hardware int's 2 (0x28)	out	#0xA1,al	.word	0x00eb,0x00eb	mov	al,#0x04		! 8259-1 is master	out	#0x21,al	.word	0x00eb,0x00eb	mov	al,#0x02		! 8259-2 is slave	out	#0xA1,al	.word	0x00eb,0x00eb	mov	al,#0x01		! 8086 mode for both	out	#0x21,al	.word	0x00eb,0x00eb	out	#0xA1,al	.word	0x00eb,0x00eb	mov	al,#0xFF		! mask off all interrupts for now	out	#0x21,al	.word	0x00eb,0x00eb	out	#0xA1,al! well, that certainly wasn't fun :-(. Hopefully it works, and we don't! need no steenking BIOS anyway (except for the initial loading :-).! The BIOS-routine wants lots of unnecessary data, and it's less! "interesting" anyway. This is how REAL programmers do it.!! Well, now's the time to actually move into protected mode. To make! things as simple as possible, we do no register set-up or anything,! we let the gnu-compiled 32-bit programs do that. We just jump to! absolute address 0x00000, in 32-bit protected mode.	mov	ax,#0x0001	! protected mode (PE) bit	lmsw	ax		! This is it!	jmpi	0,8		! jmp offset 0 of segment 8 (cs)! This routine checks that the keyboard command queue is empty! No timeout is used - if this hangs there is something wrong with! the machine, and we probably couldn't proceed anyway.empty_8042:	.word	0x00eb,0x00eb	in	al,#0x64	! 8042 status port	test	al,#2		! is input buffer full?	jnz	empty_8042	! yes - loop	retgdt:	.word	0,0,0,0		! dummy	.word	0x07FF		! 8Mb - limit=2047 (2048*4096=8Mb)	.word	0x0000		! base address=0	.word	0x9A00		! code read/exec	.word	0x00C0		! granularity=4096, 386	.word	0x07FF		! 8Mb - limit=2047 (2048*4096=8Mb)	.word	0x0000		! base address=0	.word	0x9200		! data read/write	.word	0x00C0		! granularity=4096, 386idt_48:	.word	0			! idt limit=0	.word	0,0			! idt base=0Lgdt_48:	.word	0x800		! gdt limit=2048, 256 GDT entries	.word	512+gdt,0x9	! gdt base = 0X9xxxx	.textendtext:.dataenddata:.bssendbss:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜亚洲网站| 99久久伊人网影院| 亚洲视频你懂的| 久久综合九色欧美综合狠狠| 国模娜娜一区二区三区| 欧洲生活片亚洲生活在线观看| 精品在线免费视频| 蜜桃av一区二区在线观看| 石原莉奈在线亚洲二区| 亚洲大尺度视频在线观看| 亚洲福利视频一区二区| 亚洲高清免费一级二级三级| 午夜欧美视频在线观看| 肉丝袜脚交视频一区二区| 青青草成人在线观看| 日本一区中文字幕| 韩国精品久久久| 国产91在线|亚洲| 色婷婷久久综合| 欧美日韩国产大片| 国产网红主播福利一区二区| 91麻豆精东视频| 99视频超级精品| 91久久精品日日躁夜夜躁欧美| 欧美日韩在线直播| 日韩精品最新网址| 国产精品不卡在线| 亚洲午夜三级在线| 国产精品主播直播| 欧美性色综合网| 精品国产百合女同互慰| 中文字幕一区二区在线播放| 日韩中文欧美在线| 国产99精品在线观看| 欧美在线|欧美| 精品国产乱码久久久久久久久| 国产精品久久久一本精品| 亚洲超碰精品一区二区| 狠狠色丁香久久婷婷综合丁香| 欧美午夜一区二区三区免费大片| 在线观看日韩av先锋影音电影院| 欧亚洲嫩模精品一区三区| 欧美精品电影在线播放| 国产亚洲成年网址在线观看| 亚洲欧美一区二区三区极速播放| 青青草成人在线观看| 96av麻豆蜜桃一区二区| 日韩精品资源二区在线| 亚洲人精品午夜| 卡一卡二国产精品 | 国产乱码精品一品二品| 色婷婷精品大在线视频| 欧美tk丨vk视频| 性做久久久久久免费观看欧美| 国产传媒久久文化传媒| 久久se精品一区精品二区| 97久久精品人人澡人人爽| 欧美精品一区二区三区久久久| 亚洲精品大片www| 成熟亚洲日本毛茸茸凸凹| 日韩一级黄色大片| 亚洲国产wwwccc36天堂| 91丨九色丨蝌蚪富婆spa| 久久久九九九九| 免费观看久久久4p| 欧美精品自拍偷拍动漫精品| 亚洲视频在线观看一区| 丰满放荡岳乱妇91ww| www国产精品av| 美女视频一区二区三区| 欧美一区中文字幕| 丝袜美腿亚洲综合| 欧美日韩日日夜夜| 亚洲国产精品久久不卡毛片| 色综合色综合色综合色综合色综合 | 日韩免费一区二区| 日韩高清中文字幕一区| 欧美午夜电影一区| 亚洲一级在线观看| 欧美色图激情小说| 五月婷婷综合在线| 91精品免费在线观看| 视频一区二区不卡| 欧美大片在线观看一区二区| 捆绑调教一区二区三区| 久久综合九色综合97_久久久| 国内成人免费视频| 欧美经典一区二区| 暴力调教一区二区三区| 亚洲日本一区二区三区| 欧美主播一区二区三区美女| 亚洲福利视频导航| 欧美一区二区久久| 国产麻豆午夜三级精品| 国产精品全国免费观看高清| av电影在线观看不卡| 伊人婷婷欧美激情| 在线播放一区二区三区| 激情综合网av| 国产精品高潮久久久久无| 色哟哟一区二区| 日韩精彩视频在线观看| 久久久久久日产精品| aaa欧美日韩| 日韩高清不卡在线| 国产视频在线观看一区二区三区 | 91麻豆精品国产91久久久久久久久 | 欧美午夜精品电影| 麻豆成人免费电影| 国产精品美女久久久久久久久久久| 一本久久精品一区二区| 日韩精品一区第一页| 国产亚洲成av人在线观看导航| 99久久99久久精品免费看蜜桃| 亚洲一级二级在线| 国产色产综合产在线视频| 91国产成人在线| 国产一区二区三区日韩| 亚洲影视在线播放| 国产三区在线成人av| 欧美精品日韩精品| av在线一区二区三区| 久久国产三级精品| 亚洲综合久久久| 国产精品色在线观看| 日韩欧美在线123| 色综合欧美在线| 国产成人午夜视频| 日韩电影在线观看网站| 亚洲摸摸操操av| 日本一区二区动态图| 91麻豆精品国产91久久久久久| 91视视频在线观看入口直接观看www| 免费精品99久久国产综合精品| 亚洲欧美日韩人成在线播放| 久久这里只精品最新地址| 欧美日韩午夜精品| 91免费观看国产| 成人av网站在线观看免费| 极品瑜伽女神91| 奇米综合一区二区三区精品视频| 亚洲蜜臀av乱码久久精品蜜桃| 欧美国产一区视频在线观看| 精品欧美一区二区久久| 91精品国产91久久久久久一区二区 | 成人aaaa免费全部观看| 国产一本一道久久香蕉| 日本麻豆一区二区三区视频| 亚洲国产视频网站| 亚洲一区在线观看网站| 亚洲综合免费观看高清在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 国产日韩精品视频一区| 久久先锋影音av鲁色资源网| 欧美成人三级在线| 日韩欧美一区电影| 日韩精品中文字幕一区 | 欧美国产一区视频在线观看| 欧美精品一区二区蜜臀亚洲| 精品国产91洋老外米糕| 久久久亚洲午夜电影| 精品福利一区二区三区免费视频| 欧美xingq一区二区| 精品免费日韩av| 26uuu精品一区二区三区四区在线| 欧美变态口味重另类| 亚洲精品一区二区三区福利| 久久品道一品道久久精品| 国产日韩影视精品| 中文字幕一区二区三区不卡在线 | 国产成人av电影在线| 国产盗摄精品一区二区三区在线 | 国产精品高潮久久久久无| 亚洲伦理在线免费看| 亚洲v精品v日韩v欧美v专区| 日本欧美大码aⅴ在线播放| 另类综合日韩欧美亚洲| 国产成人鲁色资源国产91色综 | 欧美激情一区二区在线| 最新成人av在线| 天堂成人国产精品一区| 国产中文一区二区三区| 97se狠狠狠综合亚洲狠狠| 在线播放中文一区| 国产婷婷色一区二区三区四区| 亚洲精品午夜久久久| 日韩精品一级中文字幕精品视频免费观看 | 国产精品毛片久久久久久久| 亚洲人午夜精品天堂一二香蕉| 日韩激情中文字幕| 国产v日产∨综合v精品视频| 91福利在线看| 久久婷婷综合激情| 亚洲精品日韩一| 黄色日韩网站视频| 色一情一乱一乱一91av| 日韩欧美一区中文| 一区二区欧美在线观看| 国产一区二区三区久久久| 91黄色免费版|