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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1.html

?? 介紹linux下文件和設備編程
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
SETUPSECS = 4 ! 默認的setup程序扇區數(setup-sectors)的默認值;<p>BOOTSEG = 0x7C0 ! bootsect的原始地址;<p>INITSEG = DEF_INITSEG ! 將bootsect程序移到這個段處(0x9000) - 避開;<br>SETUPSEG = DEF_SETUPSEG ! 設置程序(setup)從這里開始(0x9020);<br>SYSSEG = DEF_SYSSEG ! 系統加載至0x1000(65536)(64k)段處;<br>SYSSIZE = DEF_SYSSIZE ! 系統的大小(0x7F00): 要加載的16字節為一節的數;<br>!! 以上4個DEF_參數定義在boot.h中:<br>!! DEF_INITSEG 0x9000<br>!! DEF_SYSSEG 0x1000<br>!! DEF_SETUPSEG 0x9020<br>!! DEF_SYSSIZE 0x7F00 (=32512=31.75k)*16=508k<p>! ROOT_DEV &amp; SWAP_DEV 現在是由&quot;build&quot;中編制的;<br>ROOT_DEV = 0<br>SWAP_DEV = 0<br>#ifndef SVGA_MODE<br>#define SVGA_MODE ASK_VGA<br>#endif<br>#ifndef RAMDISK<br>#define RAMDISK 0<br>#endif<br>#ifndef CONFIG_ROOT_RDONLY<br>#define CONFIG_ROOT_RDONLY 1<br>#endif<p>! ld86 需要一個入口標識符,這和通常的一樣;<br>.globl _main<br>_main:<br>#if 0 /* 調試程序的異常分支,除非BIOS古怪(比如老的HP機)否則是無害的 */<br>int 3<br>#endif<br>mov ax,#BOOTSEG !! 將ds段寄存器置為0x7C0;<br>mov ds,ax<br>mov ax,#INITSEG !! 將es段寄存器置為0x9000;<br>mov es,ax<br>mov cx,#256 !! 將cx計數器置為256(要移動256個字, 512字節);<br>sub si,si !! 源地址 ds:si=0x07C0:0x0000;<br>sub di,di !! 目的地址es:di=0x9000:0x0000;<br>cld !! 清方向標志;<br>rep !! 將這段程序從0x7C0:0(31k)移至0x9000:0(576k)處;<br>movsw !! 共256個字(512字節)(0x200長);<br>jmpi go,INITSEG !! 間接跳轉至移動后的本程序go處;<p>! ax和es現在已經含有INITSEG的值(0x9000);<p>go: mov di,#0x4000-12 ! 0x4000(16k)是&gt;=bootsect + setup 的長度 +<br>! + 堆棧的長度 的任意的值;<br>! 12 是磁盤參數塊的大小 es:di=0x94000-12=592k-12;<p>! bde - 將0xff00改成了0x4000以從0x6400處使用調試程序(bde)。如果<br>! 我們檢測過最高內存的話就不用擔心這事了,還有,我的BIOS可以被配置為將wini驅動<br>表<br>! 放在內存高端而不是放在向量表中。老式的堆棧區可能會搞亂驅動表;<p>mov ds,ax ! 置ds數據段為0x9000;<br>mov ss,ax ! 置堆棧段為0x9000;<br>mov sp,di ! 置堆棧指針INITSEG:0x4000-12處;<br>/*<br>* 許多BIOS的默認磁盤參數表將不能<br>* 進行扇區數大于在表中指定<br>* 的最大扇區數( - 在某些情況下<br>* 這意味著是7個扇區)后面的多扇區的讀操作。<br>*<br>* 由于單個扇區的讀操作是很慢的而且當然是沒問題的,<br>* 我們必須在RAM中(為第一個磁盤)創建新的參數表。<br>* 我們將把最大扇區數設置為36 - 我們在一個ED 2.88驅動器上所能<br>* 遇到的最大值。<br>*<br>* 此值太高是沒有任何害處的,但是低的話就會有問題了。<br>*<br>* 段寄存器是這樣的: ds=es=ss=cs - INITSEG,(=0X9000)<br>* fs = 0, gs沒有用到。<br>*/<p>! 上面執行重復操作(rep)以后,cx為0;<p>mov fs,cx !! 置fs段寄存器=0;<br>mov bx,#0x78 ! fs:bx是磁盤參數表的地址;<br>push ds<br>seg fs<br>lds si,(bx) ! ds:si是源地址;<br>!! 將fs:bx地址所指的指針值放入ds:si中;<br>mov cl,#6 ! 拷貝12個字節到0x9000:0x4000-12開始處;<br>cld<br>push di !! 指針0x9000:0x4000-12處;<p>rep<br>movsw<p>pop di !! di仍指向0x9000:0x4000-12處(參數表開始處);<br>pop si !! ds =&gt; si=INITSEG(=0X9000);<p>movb 4(di),*36 ! 修正扇區計數值;<p>seg fs<br>mov (bx),di !! 修改fs:bx(0000:0x0078)處磁盤參數表的地址為0x9000:0x4000-12;<br>seg fs<br>mov 2(bx),es<p>! 將setup程序所在的扇區(setup-sectors)直接加載到boot塊的后面。!! 0x90200開始處<br>;<br>! 注意,es已經設置好了。<br>! 同樣經過rep循環后cx為0<p>load_setup:<br>xor ah,ah ! 復位軟驅(FDC);<br>xor dl,dl<br>int 0x13<p>xor dx,dx ! 驅動器0, 磁頭0;<br>mov cl,#0x02 ! 從扇區2開始,磁道0;<br>mov bx,#0x0200 ! 置數據緩沖區地址=es:bx=0x9000:0x200;<br>! 在INITSEG段中,即0x90200處;<br>mov ah,#0x02 ! 要調用功能號2(讀操作);<br>mov al,setup_sects ! 要讀入的扇區數SETUPSECS=4;<br>! (假釋所有數據都在磁頭0、磁道0);<br>int 0x13 ! 讀操作;<br>jnc ok_load_setup ! ok則繼續;<p>push ax ! 否則顯示出錯信息。保存ah的值(功能號2);<br>call print_nl !! 打印換行;<br>mov bp,sp !! bp將作為調用print_hex的參數;<br>call print_hex !! 打印bp所指的數據;<br>pop ax<p>jmp load_setup !! 重試!<p>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>!!INT 13 - DISK - READ SECTOR(S) INTO MEMORY<br>!! AH = 02h<br>!! AL = number of sectors to read (must be nonzero)<br>!! CH = low eight bits of cylinder number<br>!! CL = sector number 1-63 (bits 0-5)<br>!! high two bits of cylinder (bits 6-7, hard disk only)<br>!! DH = head number<br>!! DL = drive number (bit 7 set for hard disk)<br>!! ES:BX -&gt; data buffer<br>!! Return: CF set on error<br>!! if AH = 11h (corrected ECC error), AL = burst length<br>!! CF clear if successful<br>!! AH = status (see #00234)<br>!! AL = number of sectors transferred (only valid if CF set for some<br>!! BIOSes)<br>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<p><br>ok_load_setup:<p>! 取得磁盤驅動器參數,特別是每磁道扇區數(nr of sectors/track);<p>#if 0<p>! bde - Phoenix BIOS手冊中提到功能0x08只對硬盤起作用。<br>! 但它對于我的一個BIOS(1987 Award)不起作用。<br>! 不檢查錯誤碼是致命的錯誤。<p>xor dl,dl<br>mov ah,#0x08 ! AH=8用于取得驅動器參數;<br>int 0x13<br>xor ch,ch<p>!!!!!!!!!!!!!!!!!!!!!!!!!!!<br>!! INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)<br>!! AH = 08h<br>!! DL = drive (bit 7 set for hard disk)<br>!!Return: CF set on error<br>!! AH = status (07h) (see #00234)<br>!! CF clear if successful<br>!! AH = 00h<br>!! AL = 00h on at least some BIOSes<br>!! BL = drive type (AT/PS2 floppies only) (see #00242)<br>!! CH = low eight bits of maximum cylinder number<br>!! CL = maximum sector number (bits 5-0)<br>!! high two bits of maximum cylinder number (bits 7-6)<br>!! DH = maximum head number<br>!! DL = number of drives<br>!! ES:DI -&gt; drive parameter table (floppies only)<br>!!!!!!!!!!!!!!!!!!!!!!!!!!!!<p>#else<p>! 好象沒有BIOS調用可取得扇區數。如果扇區36可以讀就推測是36個扇區,<br>! 如果扇區18可讀就推測是18個扇區,如果扇區15可讀就推測是15個扇區,<br>! 否則推測是9. [36, 18, 15, 9]<p>mov si,#disksizes ! ds:si-&gt;要測試扇區數大小的表;<p>probe_loop:<br>lodsb !! ds:si所指的字節 =&gt;al, si=si+1;<br>cbw ! 擴展為字(word);<br>mov sectors, ax ! 第一個值是36,最后一個是9;<br>cmp si,#disksizes+4<br>jae got_sectors ! 如果所有測試都失敗了,就試9;<br>xchg ax,cx ! cx = 磁道和扇區(第一次是36=0x0024);<br>xor dx,dx ! 驅動器0,磁頭0;<br>xor bl,bl !! 設置緩沖區es:bx = 0x9000:0x0a00(578.5k);<br>mov bh,setup_sects !! setup_sects = 4 (共2k);<br>inc bh<br>shl bh,#1 ! setup后面的地址(es=cs);<br>mov ax,#0x0201 ! 功能2(讀),1個扇區;<br>int 0x13<br>jc probe_loop ! 如果不對,就試用下一個值;<p>#endif<p>got_sectors:<p>! 恢復es<p>mov ax,#INITSEG<br>mov es,ax ! es = 0x9000;<p>! 打印一些無用的信息(換行后,顯示Loading)<p>mov ah,#0x03 ! 讀光標位置;<br>xor bh,bh<br>int 0x10<p>mov cx,#9<br>mov bx,#0x0007 ! 頁0,屬性7 (normal);<br>mov bp,#msg1<br>mov ax,#0x1301 ! 寫字符串,移動光標;<br>int 0x10<p>! ok, 我們已經顯示出了信息,現在<br>! 我們要加載系統了(到0x10000處)(64k處)<p>mov ax,#SYSSEG<br>mov es,ax ! es=0x01000的段;<br>call read_it !! 讀system,es為輸入參數;<br>call kill_motor !! 關閉驅動器馬達;<br>call print_nl !! 打印回車換行;<p>! 這以后,我們來檢查要使用哪個根設備(root-device)。如果已指定了設備(!=0)<br>! 則不做任何事而使用給定的設備。否則的話,使用/dev/fd0H2880 (2,32)或/dev/PS0<br>(2,28)<br>! 或者是/dev/at0 (2,8)之一,這取決于我們假設我們知道的扇區數而定。<br>!! |__ ps0?? (x,y)--表示主、次設備號?<p>seg cs<br>mov ax,root_dev<br>or ax,ax<br>jne root_defined<br>seg cs<br>mov bx,sectors !! sectors = 每磁道扇區數;<br>mov ax,#0x0208 ! /dev/ps0 - 1.2Mb;<br>cmp bx,#15<br>je root_defined<br>mov al,#0x1c ! /dev/PS0 - 1.44Mb !! 0x1C = 28;<br>cmp bx,#18<br>je root_defined<br>mov al,0x20 ! /dev/fd0H2880 - 2.88Mb;<br>cmp bx,#36<br>je root_defined<br>mov al,#0 ! /dev/fd0 - autodetect;<br>root_defined:<br>seg cs<br>mov root_dev,ax !! 其中保存由設備的主、次設備號;<p>! 這以后(所有程序都加載了),我們就跳轉至<br>! 被直接加載到boot塊后面的setup程序去:<p>jmpi 0,SETUPSEG !! 跳轉到0x9020:0000(setup程序的開始位置);<p><br>! 這段程序將系統(system)加載到0x10000(64k)處,<br>! 注意不要跨越64kb邊界。我們試圖以最快的速度<br>! 來加載,只要可能就整個磁道一起讀入。<br>!<br>! 輸入(in): es - 開始地址段(通常是0x1000)<br>!<br>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区白人 | 奇米一区二区三区| 韩国女主播一区| 一区二区三区**美女毛片| 久久久久久99精品| 天天色图综合网| 91在线精品一区二区| 欧美xxxxxxxxx| 天天色综合天天| 91福利国产成人精品照片| 精品国产成人系列| 午夜激情久久久| 91麻豆6部合集magnet| 久久久久久99久久久精品网站| 午夜电影久久久| 一道本成人在线| 亚洲视频在线观看三级| 国内欧美视频一区二区| 日韩一二三四区| 三级成人在线视频| 欧美在线播放高清精品| 日韩理论片网站| 99精品欧美一区二区三区综合在线| 精品av综合导航| 久久电影网站中文字幕| 日韩三级高清在线| 久久9热精品视频| 欧美一级黄色录像| 久久精品国产色蜜蜜麻豆| 日韩欧美第一区| 日韩高清不卡一区| 在线播放视频一区| 日韩成人免费电影| 4438成人网| 精品一区二区久久久| 欧美老肥妇做.爰bbww视频| 亚洲国产精品久久久久秋霞影院| 在线视频国内一区二区| 午夜精品久久久久影视| 91精品视频网| 国产乱码精品一区二区三区忘忧草 | 欧美电视剧免费全集观看| 日韩精品电影在线| 久久这里只有精品视频网| 国产精品一二三四| 成人免费小视频| 欧美日韩视频在线第一区 | 97成人超碰视| 亚洲最大成人网4388xx| 欧美日韩不卡在线| 久久精品国产一区二区三| 欧美激情综合在线| 色狠狠av一区二区三区| 天天操天天色综合| 国产清纯白嫩初高生在线观看91 | 成人午夜激情影院| 亚洲美女视频在线| 日韩亚洲欧美在线| 成人av在线看| 日韩高清不卡在线| 中文字幕一区日韩精品欧美| 日本高清不卡aⅴ免费网站| 日本不卡视频一二三区| 国产嫩草影院久久久久| 在线观看91视频| 韩国av一区二区三区四区| 亚洲日本丝袜连裤袜办公室| 欧美人伦禁忌dvd放荡欲情| 国产一区二区在线看| 亚洲蜜臀av乱码久久精品蜜桃| 91精品国产综合久久久久| 成人亚洲精品久久久久软件| 亚洲福利一区二区三区| 国产性做久久久久久| 欧美日韩一区二区电影| 懂色av噜噜一区二区三区av| 亚洲成人av资源| 国产精品乱码一区二区三区软件| 欧美日韩一区二区在线视频| 福利电影一区二区三区| 蜜臀久久99精品久久久画质超高清| 国产精品网曝门| 日韩欧美一区电影| 欧美日韩在线一区二区| av毛片久久久久**hd| 黄色日韩网站视频| 日韩电影一区二区三区四区| 亚洲精品成人悠悠色影视| 久久久91精品国产一区二区三区| 欧美精品丝袜中出| 色天使久久综合网天天| 成人免费看片app下载| 韩国v欧美v亚洲v日本v| 蜜臀av性久久久久蜜臀aⅴ流畅| 最新国产成人在线观看| 中文字幕高清不卡| 久久精子c满五个校花| 日韩欧美高清在线| 日韩欧美视频一区| 欧美日本一道本在线视频| 欧美在线不卡一区| 91黄视频在线| 在线观看日韩av先锋影音电影院| 成人一级片网址| 成人avav在线| 成人性生交大片免费看中文网站| 国产精品亚洲专一区二区三区| 久久se这里有精品| 免费成人在线视频观看| 毛片av中文字幕一区二区| 日本午夜一区二区| 日本人妖一区二区| 免费美女久久99| 蜜桃av一区二区在线观看| 日韩黄色免费电影| 免费精品视频在线| 精品亚洲成a人| 国产精品91一区二区| 国产成人综合网站| 成人黄色软件下载| 99久久99久久精品免费看蜜桃| 不卡一二三区首页| 日本大香伊一区二区三区| 91黄色激情网站| 欧美三级电影精品| 日韩三级伦理片妻子的秘密按摩| 日韩欧美卡一卡二| 中日韩免费视频中文字幕| 亚洲欧美乱综合| 亚洲成人黄色小说| 九九在线精品视频| 本田岬高潮一区二区三区| 色欧美片视频在线观看| 91精品久久久久久蜜臀| 欧美成人r级一区二区三区| 久久久国产精品麻豆| 亚洲情趣在线观看| 视频一区免费在线观看| 国产尤物一区二区| 色国产精品一区在线观看| 91精品国产综合久久久久久久 | 日韩一区和二区| 国产欧美视频一区二区| 一区二区三区日韩欧美精品| 丝袜脚交一区二区| 国产高清精品久久久久| 欧美专区日韩专区| 久久久久久毛片| 亚洲国产wwwccc36天堂| 国产一区高清在线| 欧美日韩一区二区在线观看视频| 久久久久99精品国产片| 亚洲一区在线观看网站| 国产乱理伦片在线观看夜一区| 色天使色偷偷av一区二区| 精品国产成人系列| 亚洲国产成人porn| 成人av网站在线观看免费| 在线不卡一区二区| 亚洲精品日产精品乱码不卡| 精品夜夜嗨av一区二区三区| 91福利视频网站| 国产亚洲人成网站| 亚洲va国产va欧美va观看| 福利电影一区二区三区| 日韩欧美一区在线| 亚洲一区二区四区蜜桃| 国产精品亚洲成人| 日韩免费在线观看| 亚洲午夜影视影院在线观看| 丰满放荡岳乱妇91ww| 精品免费99久久| 日韩精品国产精品| 欧美三级电影网| 亚洲精品福利视频网站| 成人精品小蝌蚪| 国产日产欧产精品推荐色 | 久久精品无码一区二区三区| 性欧美疯狂xxxxbbbb| 日本精品视频一区二区| 综合久久国产九一剧情麻豆| 国产一区福利在线| 精品剧情v国产在线观看在线| 性欧美疯狂xxxxbbbb| 欧美优质美女网站| 一区二区三区在线视频观看58| 高清不卡在线观看| 欧美激情综合在线| 东方aⅴ免费观看久久av| 久久老女人爱爱| 国产成人精品亚洲日本在线桃色| 精品乱人伦小说| 国产一级精品在线| 国产日韩在线不卡| 成人国产精品免费| 亚洲欧洲av在线| 91麻豆精品秘密| 亚洲图片有声小说| 欧美一区二区网站| 久久99热这里只有精品|