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

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

?? bootsect.s

?? Simple Operating Systems (簡稱SOS)是一個(gè)可以運(yùn)行在X86平臺上(包括QEMU
?? S
字號:
/* * @(#) $Id: bootsect.S,v 1.6 2004/06/18 07:43:51 d2 Exp $ * Description : Bootsecteur en syntaxe AT&T * Auteurs : Thomas Petazzoni & Fabrice Gautier & Emmanuel Marty *	     Jerome Petazzoni & Bernard Cassagne & coffeeman *	     David Decotigny * Bug reports to kos-misc@enix.org *//* * But global de ce bootsecteur : * *		- Initialiser la becane *		- Charger le kernel *		- Passer en mode protege *		- Executer le kernel * * Taille restante : Je vous rappelle qu'un bootsecteur ne peut faire * qu'au maximum 512 octets dont 2 octets obligatoires 0xAA55.  Sur * les 510 octets reellement utilisables, il reste 3 octets dispo (60 * si on decide d'enlever le BPB un jour) !!! * * thomas_petazzoni :  - detection des codes d'erreurs de chargement * David_Decotigny  :  - Passage en GNU as * David_Decotigny  :  - Chargement du noyau au-dela du 1er Mega (taille *                       max = 0x9e000 octets = 632ko), pour avoir le *                       meme noyau sous grub et avec le bootsecteur */ /*  * Sequence d'operations :  * - Le BIOS charge le bootsect en 0x7c00 (BOOT_ADRESS). On choisit  *   la representation 0x7c0:0000 pour que le .org 0 reste valide  * - Le bootsect se deplace de lui-meme en 0x9f000 (COPY_ADRESS). On  *   choisit la representation 0x9f00:0000 pour que le .org 0 reste  *   valide  * - Le bootsect verifie que le processeur est du type 386+  * - Il charge le noyau depuis la disquette en memoire a partir de  *   0x1000 (LOAD_ADRESS). Le noyau peut au max tenir sur  *   SECTORS_TO_LOAD secteurs  * - Il passe en pmode flat (apres ouverture a20)  * - Il recopie le noyau (situe en LOAD_ADRESS) vers son adresse  *   finale (FINAL_ADDRESS = 2Mo). La recopie se fait sur tout l'espace  *   LOAD_ADRESS ---> COPY_ADRESS, c'est a dire sur 0x9e000 octets =  *   632ko. Le noyau peut donc au max faire 632ko. Le nombre max de  *   secteurs de disquette qu'on peut charger est donc 1264  *//* La taille de la pile */#define BOOT_STACK_SIZE	        0x4000	.file	"bootsect.S"	/* Tout est place dans une seule section */	.section ".bootsect"	/* L'essentiel du bootsector (sauf les 1eres instructions)	   sont a un offset 0. On fait en sorte que le compilo soit	   d'accord la-dessus. Quand on a des adresse realm exotiques	   (0x7c00, 0x9f000, ...), on s'arrange toujours pour avoir un	   offset de 0 => on choisira le segment adapte (0x7c0,	   0x9f00, ...). Il ne faut pas oublier le ld -Ttext 0 */	.org 0	/* Pour que gas genere du 16bits, afin que ca marche en realm */	.code16#define SECTORS_TO_LOAD 128 /* 64 ko */ /* MAX=1264 *//* * Parametres de la disquette. Comme c'est chiant de faire une * procedure de detection auto, et que ca prend de la place, on fait * ca "a la main". Par exemple, une DD 720 Ko a 9 secteurs/piste, une * 1.44 Mo a 18 secteurs/pistes */#define CYLS    80#define HEADS   1#define SECTS   18#define BOOT_ADRESS 0x07C00  	       /* Adresse de demarrage (lineaire) */#define BOOT_SEG (BOOT_ADRESS>>4)      /* Segment de Boot */#define BOOT_SIZE 512		       /* Taille bu bootsecteur */#define COPY_ADRESS 0x9F000  	       /* La ou on va copier le					  bootsecteur (lineaire) */#define COPY_SEG (COPY_ADRESS>>4)      /* Segment de la ou on va					  copier le bootsecteur */#define LOAD_ADRESS 0x01000  	       /* 1er chargement du systeme */#define LOAD_SEG (LOAD_ADRESS>>4)      /* Segment du 1er chargement du */#define MAX_KERN_LEN COPY_ADRESS-LOAD_ADRESS /* Taille noyau maxi *//* IMPORTANT : Cette valeur DOIT etre identique a l'adresse presente	       dans sos.lds ! */#define FINAL_ADDRESS 0x200000         /* Adresse finale (physique de 0 a 4G)	                                  ou est charge le noyau */#define OP16 .byte 0x66 ;#define OP32 .byte 0x66 ;/* * Procedure qui vide le buffer clavier. */#define WAITKB     \  1:               ;\    .word 0xeb     ;\    .word 0xeb     ;\    inb $0x64, %al ;\    andb $0x2, %al ;\    jnz 1b	/* Le point d'entree dans le bootsect */.globl _bsect_bsect:	/*	 * La portion qui suit est situee a un offset 0x7c00 en	 * memoire. Attention donc aux references memoire dans cette	 * partie. On choisit de rester en offset 0 (.org 0), mais on         * charge correctement les segments a 0x7c0.         */	movw $BOOT_SEG, %ax /* le bootsecteur est a 0x7C00 en lineaire */	movw %ax, %ds      /* on le copie a l'adresse COPY_ADRESS */	xorw %si, %si      /* comme cette adresse est la plus haute de la mem */	xorw %di, %di      /* on pourra charger un kernel + gros */	movw $(BOOT_SIZE>>1), %cx	movw $COPY_SEG, %ax	movw %ax, %es	cld	rep ; movsw				/* on continue a executer le bootsecteur, mais maintenant a           partir de 0x9F000, qu'on represente sous la forme           0x9f00:offset */	ljmp $COPY_SEG, $here	/*	 * A partir de maintenant, on est a un offset 0 en memoire         * (segment 0x9f00), conformement a ce que veut le compilo.	 */here:	movw %ax, %ds	/* Petite pile temporaire (1k - 3.84k en RAM ; les adresses 0-1k	   correspondent au vecteur d'interruptions). */	movw %ax, %ss    	movw $(LOAD_ADRESS - 0x10), %sp        	/* Efface l'ecran */	movb $0x0, %ah	movb $0x3, %al	int 	$0x10	/* Affiche les messages d'attente */	movw $loadkern, %si	call message	movw $check, %si	call messagecheck386:	/*	 * la attention, plus complexe : on teste si le proc est un	 * 386+ pour cela, on va essayer de modifier les bits 12 ? 14	 * du registre E-flag si la modification reste, alors le proc	 * est un 386+, sinon, c'est =< 286	 *	 * Merci a Emmanuel Marty pour la compatibilite avec les 386	 * "pre-jurassique"	 */	pushf /* on sauvegarde le E-Flag */	movb $0x70, %ah	pushw %ax	popf	pushf	popw %ax	orb %ah, %ah	je no386  /* si la modif n'est pas valable, alors on saute a                     no386 */	popf      /* on les restaure ? la fin ... */	/* Message de confirmation de 386+ et d'attente */        movw $found386, %si	call message	movw $loading, %si	call message/* Copie du noyau disquette => RAM a partir de 0x1000   L'adresse de destination est d閒inie par es:0, o

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区在线观看| 亚洲一区二区三区中文字幕在线| 中文字幕精品一区| 亚洲精品视频观看| 国产乱理伦片在线观看夜一区| 一本色道久久综合亚洲91 | 日本二三区不卡| 欧美精品一区二区不卡| 亚洲成人一二三| 99r国产精品| 久久精品亚洲国产奇米99| 蜜臀a∨国产成人精品| 欧美三级资源在线| 亚洲女性喷水在线观看一区| 国产精品99久久不卡二区| 欧美xxxx老人做受| 日日夜夜精品视频免费| 欧美优质美女网站| 亚洲视频在线一区观看| 不卡的av网站| 国产精品看片你懂得| 成人综合日日夜夜| 国产亚洲精品7777| 国产福利一区二区三区视频在线| 日韩精品一区在线| 裸体一区二区三区| 777a∨成人精品桃花网| 三级成人在线视频| 欧美区视频在线观看| 香蕉久久夜色精品国产使用方法 | 久久国产剧场电影| 日韩一区二区三区精品视频 | 亚洲精品久久久久久国产精华液| 成人午夜免费电影| 中文字幕亚洲一区二区av在线| 成人禁用看黄a在线| 中文字幕一区二区三区在线观看| 成人免费视频免费观看| 国产精品剧情在线亚洲| 99在线精品视频| 亚洲裸体在线观看| 欧洲激情一区二区| 亚洲18影院在线观看| 日韩一级黄色大片| 国产成人自拍网| 国产精品久久久久影院老司| 91啪九色porn原创视频在线观看| 亚洲九九爱视频| 精品视频一区三区九区| 免费看黄色91| 久久久久久亚洲综合影院红桃| 国产成人av电影在线观看| 国产精品久久久久久福利一牛影视| 99久久综合精品| 亚洲成人一区二区| 久久日韩粉嫩一区二区三区| k8久久久一区二区三区| 亚洲综合小说图片| 精品国产a毛片| 99久久亚洲一区二区三区青草| 一区二区不卡在线视频 午夜欧美不卡在| 欧美视频精品在线| 国产自产v一区二区三区c| 中文字幕永久在线不卡| 在线不卡的av| 岛国一区二区三区| 日韩激情一区二区| 国产精品国产a| 欧美一区午夜视频在线观看| 国产精品一二一区| 午夜在线成人av| 国产精品女同一区二区三区| 欧美精品xxxxbbbb| 成人精品在线视频观看| 男人操女人的视频在线观看欧美| 一区二区中文字幕在线| 日韩三级免费观看| 91国产福利在线| 成人在线视频首页| 另类小说欧美激情| 亚洲一区二区欧美日韩| 国产精品妹子av| 久久久天堂av| 日韩一级大片在线| 欧美午夜精品久久久| 国产91丝袜在线观看| 日本不卡一二三| 一区二区日韩电影| 国产精品亲子乱子伦xxxx裸| 欧美r级在线观看| 在线播放一区二区三区| 色综合久久综合网97色综合| 国产一区二区导航在线播放| 午夜电影网一区| 亚洲一区二区在线观看视频| 国产精品丝袜黑色高跟| 久久综合色婷婷| 日韩欧美aaaaaa| 欧美日韩不卡在线| 欧美日韩黄色影视| 在线观看精品一区| 色综合色狠狠天天综合色| 成人免费毛片a| 国产盗摄视频一区二区三区| 国产中文一区二区三区| 久久精品国产一区二区三| 日韩国产欧美三级| 日日嗨av一区二区三区四区| 亚洲一区二区三区视频在线| 一区二区三区国产| 亚洲午夜精品在线| 亚洲高清不卡在线| 日韩极品在线观看| 久久精品久久久精品美女| 美脚の诱脚舐め脚责91| 另类欧美日韩国产在线| 久久99精品一区二区三区三区| 久久精品72免费观看| 精品一区二区久久久| 国产成人综合精品三级| www.日韩av| 日本韩国精品在线| 欧美三级电影在线看| 欧美在线观看你懂的| 欧美理论电影在线| 精品国产乱码久久久久久影片| 精品乱码亚洲一区二区不卡| 久久伊99综合婷婷久久伊| 国产亚洲视频系列| 亚洲欧美另类在线| 香蕉影视欧美成人| 激情综合网av| 粉嫩13p一区二区三区| 一本一本大道香蕉久在线精品| 欧美三级日韩三级| 精品国产乱码久久久久久老虎| 久久影院午夜片一区| 最新国产精品久久精品| 亚洲国产精品综合小说图片区| 天堂久久一区二区三区| 国内久久精品视频| 成人一区二区三区中文字幕| 日本韩国欧美三级| 精品国产凹凸成av人网站| 中文无字幕一区二区三区| 亚洲免费观看高清完整版在线观看 | 欧美人牲a欧美精品| 欧美电视剧在线观看完整版| 国产片一区二区| 亚洲精品写真福利| 精品一区二区三区影院在线午夜| 东方aⅴ免费观看久久av| 欧美午夜在线观看| 久久精品视频在线看| 亚洲男同性恋视频| 精品一区二区三区久久| 91久久免费观看| 精品久久久久久无| 三级影片在线观看欧美日韩一区二区| 狠狠色丁香婷婷综合| 91蜜桃传媒精品久久久一区二区| 欧美一区二区三区爱爱| 亚洲欧洲99久久| 精品夜夜嗨av一区二区三区| 欧美三级中文字| 中文字幕一区二区在线播放| 久久精品国产免费| 欧美日韩黄色一区二区| 亚洲视频一二三区| 国产大陆a不卡| 5566中文字幕一区二区电影 | 色综合色狠狠天天综合色| 精品国产一区二区亚洲人成毛片| 一区二区不卡在线播放| 成人福利电影精品一区二区在线观看 | 97se亚洲国产综合自在线观| 精品国产伦一区二区三区观看方式| 亚洲综合无码一区二区| 99国产精品国产精品毛片| 国产亚洲制服色| 卡一卡二国产精品| 欧美精品乱人伦久久久久久| 亚洲精品国产成人久久av盗摄 | 国产精品自在欧美一区| 日韩精品中午字幕| 丝袜美腿高跟呻吟高潮一区| 色婷婷国产精品久久包臀| 中文字幕日韩一区| 不卡的av网站| 国产精品第13页| 成人一区二区三区视频在线观看 | 欧美肥胖老妇做爰| 樱桃国产成人精品视频| 91九色02白丝porn| 亚洲精品乱码久久久久久日本蜜臀 | 欧美三区免费完整视频在线观看| 玉足女爽爽91| 一本色道久久综合狠狠躁的推荐 | 免费人成网站在线观看欧美高清| 在线不卡一区二区|