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

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

?? bootsect.s

?? 帶中文注釋的linux 0.11源碼 很好
?? S
?? 第 1 頁 / 共 2 頁
字號:
!! SYS_SIZE is the number of clicks (16 bytes) to be loaded.! 0x3000 is 0x30000 bytes = 196kB, more than enough for current! versions of linux ! SYS_SIZE 是要加載的節數(16 字節為1 節)。0x3000 共為1 2 3 4 5 60x7c000x00000x900000x100000xA0000system 模塊代碼執行位置線路0x90200! 0x30000 字節=192 kB(上面Linus 估算錯了),對于當前的版本空間已足夠了。!SYSSIZE = 0x3000 ! 指編譯連接后system 模塊的大小。參見列表1.2 中第92 的說明。! 這里給出了一個最大默認值。!! bootsect.s (C) 1991 Linus Torvalds!! bootsect.s is loaded at 0x7c00 by the bios-startup routines, and moves! iself out of the way to address 0x90000, and jumps there.!! It then loads 'setup' directly after itself (0x90200), and the system! at 0x10000, using BIOS interrupts.!! NOTE! currently system is at most 8*65536 bytes long. This should be no! problem, even in the future. I want to keep it simple. This 512 kB! kernel size should be enough, especially as this doesn't contain the! buffer cache as in minix!! The loader has been made as simple as possible, and continuos! read errors will result in a unbreakable loop. Reboot by hand. It! loads pretty fast by getting whole sectors at a time whenever possible.!! 以下是前面這些文字的翻譯:! bootsect.s (C) 1991 Linus Torvalds 版權所有!! bootsect.s 被bios-啟動子程序加載至0x7c00 (31k)處,并將自己! 移到了地址0x90000 (576k)處,并跳轉至那里。!! 它然后使用BIOS 中斷將'setup'直接加載到自己的后面(0x90200)(576.5k),! 并將system 加載到地址0x10000 處。!! 注意! 目前的內核系統最大長度限制為(8*65536)(512k)字節,即使是在! 將來這也應該沒有問題的。我想讓它保持簡單明了。這樣512k 的最大內核長度應該! 足夠了,尤其是這里沒有象minix 中一樣包含緩沖區高速緩沖。!! 加載程序已經做的夠簡單了,所以持續的讀出錯將導致死循環。只能手工重啟。! 只要可能,通過一次取取所有的扇區,加載過程可以做的很快的。.globl begtext, begdata, begbss, endtext, enddata, endbss ! 定義了6 個全局標識符;.text ! 文本段;begtext:.data ! 數據段;begdata:.bss ! 堆棧段;begbss:.text ! 文本段;SETUPLEN = 4 ! nr of setup-sectors! setup 程序的扇區數(setup-sectors)值;BOOTSEG = 0x07c0 ! original address of boot-sector! bootsect 的原始地址(是段地址,以下同);INITSEG = 0x9000 ! we move boot here - out of the way! 將bootsect 移到這里 -- 避開;SETUPSEG = 0x9020 ! setup starts here! setup 程序從這里開始;SYSSEG = 0x1000 ! system loaded at 0x10000 (65536).! system 模塊加載到0x10000(64 kB)處;ENDSEG = SYSSEG + SYSSIZE ! where to stop loading! 停止加載的段地址;! ROOT_DEV: 0x000 - same type of floppy as boot.! 根文件系統設備使用與引導時同樣的軟驅設備;! 0x301 - first partition on first drive etc! 根文件系統設備在第一個硬盤的第一個分區上,等等;ROOT_DEV = 0x306 ! 指定根文件系統設備是第2 個硬盤的第1 個分區。這是Linux 老式的硬盤命名! 方式,具體值的含義如下:! 設備號=主設備號*256 + 次設備號(也即dev_no = (major<<8) + minor )! (主設備號:1-內存,2-磁盤,3-硬盤,4-ttyx,5-tty,6-并行口,7-非命名管道)! 0x300 - /dev/hd0 - 代表整個第1 個硬盤;! 0x301 - /dev/hd1 - 第1 個盤的第1 個分區;! …! 0x304 - /dev/hd4 - 第1 個盤的第4 個分區;! 0x305 - /dev/hd5 - 代表整個第2 個硬盤盤;! 0x306 - /dev/hd6 - 第2 個盤的第1 個分區;! …! 0x309 - /dev/hd9 - 第2 個盤的第4 個分區;! 從linux 內核0.95 版后已經使用與現在相同的命名方法了。entry start ! 告知連接程序,程序從start 標號開始執行。start: ! 47--56 行作用是將自身(bootsect)從目前段位置0x07c0(31k)! 移動到0x9000(576k)處,共256 字(512 字節),然后跳轉到! 移動后代碼的go 標號處,也即本程序的下一語句處。mov ax,#BOOTSEG ! 將ds 段寄存器置為0x7C0;mov ds,axmov ax,#INITSEG ! 將es 段寄存器置為0x9000;mov es,axmov cx,#256 ! 移動計數值=256 字;sub si,si ! 源地址 ds:si = 0x07C0:0x0000sub di,di ! 目的地址 es:di = 0x9000:0x0000rep ! 重復執行,直到cx = 0movw ! 移動1 個字;jmpi go,INITSEG ! 間接跳轉。這里INITSEG 指出跳轉到的段地址。go: mov ax,cs ! 將ds、es 和ss 都置成移動后代碼所在的段處(0x9000)。mov ds,ax !由于程序中有堆棧操作(push,pop,call),因此必須設置堆棧。mov es,ax! put stack at 0x9ff00. ! 將堆棧指針sp 指向0x9ff00(即0x9000:0xff00)處mov ss,axmov sp,#0xFF00 ! arbitrary value >>512! 由于代碼段移動過了,所以要重新設置堆棧段的位置。! sp 只要指向遠大于512 偏移(即地址0x90200)處! 都可以。因為從0x90200 地址開始處還要放置setup 程序,! 而此時setup 程序大約為4 個扇區,因此sp 要指向大! 于(0x200 + 0x200 * 4 + 堆棧大小)處。! load the setup-sectors directly after the bootblock.! Note that 'es' is already set up.! 在bootsect 程序塊后緊根著加載setup 模塊的代碼數據。! 注意es 已經設置好了。(在移動代碼時es 已經指向目的段地址處0x9000)。load_setup:! 68--77 行的用途是利用BIOS 中斷INT 0x13 將setup 模塊從磁盤第2 個扇區! 開始讀到0x90200 開始處,共讀4 個扇區。如果讀出錯,則復位驅動器,并! 重試,沒有退路。INT 0x13 的使用方法如下:! 讀扇區:! ah = 0x02 - 讀磁盤扇區到內存;al = 需要讀出的扇區數量;! ch = 磁道(柱面)號的低8 位; cl = 開始扇區(0-5 位),磁道號高2 位(6-7);! dh = 磁頭號; dl = 驅動器號(如果是硬盤則要置位7);! es:bx ??指向數據緩沖區; 如果出錯則CF 標志置位。mov dx,#0x0000 ! drive 0, head 0mov cx,#0x0002 ! sector 2, track 0mov bx,#0x0200 ! address = 512, in INITSEGmov ax,#0x0200+SETUPLEN ! service 2, nr of sectorsint 0x13 ! read itjnc ok_load_setup ! ok - continuemov dx,#0x0000mov ax,#0x0000 ! reset the disketteint 0x13j load_setupok_load_setup:! Get disk drive parameters, specifically nr of sectors/track! 取磁盤驅動器的參數,特別是每道的扇區數量。! 取磁盤驅動器參數INT 0x13 調用格式和返回信息如下:! ah = 0x08 dl = 驅動器號(如果是硬盤則要置位7 為1)。! 返回信息:! 如果出錯則CF 置位,并且ah = 狀態碼。! ah = 0, al = 0, bl = 驅動器類型(AT/PS2)! ch = 最大磁道號的低8 位,cl = 每磁道最大扇區數(位0-5),最大磁道號高2 位(位6-7)! dh = 最大磁頭數, dl = 驅動器數量,! es:di -?? 軟驅磁盤參數表。mov dl,#0x00mov ax,#0x0800 ! AH=8 is get drive parametersint 0x13mov ch,#0x00seg cs ! 表示下一條語句的操作數在cs 段寄存器所指的段中。mov sectors,cx ! 保存每磁道扇區數。mov ax,#INITSEGmov es,ax ! 因為上面取磁盤參數中斷改掉了es 的值,這里重新改回。! Print some inane message ! 在顯示一些信息('Loading system ...'回車換行,共24 個字符)。mov ah,#0x03 ! read cursor posxor bh,bh ! 讀光標位置。int 0x10mov cx,#24 ! 共24 個字符。mov bx,#0x0007 ! page 0, attribute 7 (normal)mov bp,#msg1 ! 指向要顯示的字符串。mov ax,#0x1301 ! write string, move cursorint 0x10 ! 寫字符串并移動光標。! ok, we've written the message, now! we want to load the system (at 0x10000) ! 現在開始將system 模塊加載到0x10000(64k)處。mov ax,#SYSSEGmov es,ax ! segment of 0x010000 ! es = 存放system 的段地址。call read_it ! 讀磁盤上system 模塊,es 為輸入參數。call kill_motor ! 關閉驅動器馬達,這樣就可以知道驅動器的狀態了。! After that we check which root-device to use. If the device is

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区在线| 一区二区欧美国产| 中文字幕一区二区视频| 首页国产丝袜综合| www.激情成人| 精品久久久久久最新网址| 亚洲自拍另类综合| 成人天堂资源www在线| 欧美一区二区三区日韩视频| 国产精品久久99| 久久97超碰色| 色婷婷综合久久久久中文| 欧美韩日一区二区三区四区| 美女高潮久久久| 亚洲一区二区三区中文字幕| 日韩av高清在线观看| 色综合久久中文综合久久97| 久久蜜桃av一区精品变态类天堂| 亚洲一级电影视频| 色综合久久六月婷婷中文字幕| 国产婷婷色一区二区三区| 欧美96一区二区免费视频| 欧美日韩一区二区三区视频| 亚洲精品中文字幕乱码三区| 成人黄色综合网站| 中文字幕精品一区二区精品绿巨人 | 午夜精品久久久久久久久久久| a亚洲天堂av| 国产午夜精品一区二区三区嫩草| 国产乱人伦偷精品视频不卡| 久久久久久97三级| 懂色一区二区三区免费观看| 欧美激情综合在线| 成人高清免费在线播放| 中文字幕成人av| 97se狠狠狠综合亚洲狠狠| 中文字幕亚洲成人| 91视频国产观看| 亚洲天堂av一区| 色婷婷精品久久二区二区蜜臀av| 亚洲欧美色一区| 日本久久一区二区三区| 亚洲一区二区三区四区五区黄 | 欧美日本精品一区二区三区| 亚洲成av人片一区二区| 91精品婷婷国产综合久久| 日韩av中文字幕一区二区| 欧美成人a∨高清免费观看| 久草这里只有精品视频| 久久久久久久网| a在线欧美一区| 午夜成人免费视频| 亚洲精品一区二区在线观看| 国产馆精品极品| 亚洲桃色在线一区| 欧美一区二区三区四区久久| 国产精品自在欧美一区| 亚洲欧洲日韩一区二区三区| 欧美影院一区二区| 久久99国产精品麻豆| 综合激情网...| 3d动漫精品啪啪1区2区免费| 国产精品亚洲一区二区三区妖精 | 精品88久久久久88久久久| 不卡的电视剧免费网站有什么| 亚洲精品va在线观看| 日韩一区二区在线播放| 国产91丝袜在线播放0| 亚洲一区二区偷拍精品| 久久久亚洲国产美女国产盗摄 | www.av亚洲| 日韩在线观看一区二区| 国产亚洲欧美在线| 在线一区二区观看| 韩国精品在线观看| 亚洲一区视频在线观看视频| 欧美大片日本大片免费观看| 色天天综合色天天久久| 国产一区二区三区蝌蚪| 亚洲一卡二卡三卡四卡无卡久久| 精品国产一区二区三区久久久蜜月| youjizz国产精品| 麻豆精品在线播放| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲国产一区在线观看| 久久久久久久久久久久久女国产乱| 色婷婷综合久久久| 国产一区999| 日韩精品一二区| 亚洲欧美日韩在线| 国产夜色精品一区二区av| 欧美日韩精品三区| 91网站黄www| 国产美女精品一区二区三区| 日韩精品一级二级| 亚洲图片一区二区| 亚洲黄色性网站| 国产精品久久久久久户外露出| 欧美大胆人体bbbb| 欧美精品vⅰdeose4hd| 91福利在线播放| 91啪亚洲精品| 99精品视频一区二区三区| 国产91精品露脸国语对白| 国内成人精品2018免费看| 麻豆高清免费国产一区| 日韩av不卡一区二区| 丝袜亚洲另类欧美| 午夜精品一区二区三区三上悠亚| 亚洲女同女同女同女同女同69| 国产精品美女久久久久av爽李琼| 日韩欧美在线影院| 欧美一级日韩免费不卡| 欧美日韩国产美女| 欧美日韩国产综合久久| 日本韩国欧美在线| 在线精品视频免费播放| 91高清在线观看| 欧美日韩在线直播| 日韩午夜中文字幕| 日韩欧美aaaaaa| 精品久久久久香蕉网| 国产清纯在线一区二区www| 久久久噜噜噜久久中文字幕色伊伊| 精品88久久久久88久久久| 久久精品夜色噜噜亚洲aⅴ| 国产无遮挡一区二区三区毛片日本 | 伊人色综合久久天天| 亚洲乱码中文字幕综合| 亚洲国产日日夜夜| 婷婷六月综合亚洲| 麻豆精品精品国产自在97香蕉| 久久国产精品色婷婷| 国产999精品久久久久久绿帽| 91在线观看一区二区| 91久久线看在观草草青青| 欧美在线视频全部完| 日韩精品一区在线| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品午夜春色av| 亚洲福利电影网| 黄页网站大全一区二区| 成人高清视频在线观看| 欧美日韩精品一区二区天天拍小说| 日韩欧美国产成人一区二区| 国产欧美日韩视频在线观看| 夜夜揉揉日日人人青青一国产精品| 日韩精品91亚洲二区在线观看 | 久久综合色8888| 中文字幕亚洲欧美在线不卡| 婷婷国产在线综合| 国内精品在线播放| 91精品福利视频| 精品久久久影院| 亚洲精品成人天堂一二三| 久久99久久99小草精品免视看| 丁香婷婷综合网| 91精品国产高清一区二区三区蜜臀| 日本一区二区三区视频视频| 性久久久久久久久久久久| 成人黄色777网| 欧美一区二区三区在线观看视频| 国产精品欧美经典| 奇米亚洲午夜久久精品| 91视频在线观看免费| 精品国产污网站| 日日噜噜夜夜狠狠视频欧美人| 韩国午夜理伦三级不卡影院| 在线亚洲一区观看| 国产日本亚洲高清| 久久精品国产成人一区二区三区| 96av麻豆蜜桃一区二区| 久久亚洲免费视频| 日韩国产精品久久| 91福利在线播放| 成人欧美一区二区三区白人| 激情六月婷婷综合| 欧美日韩成人综合| 亚洲视频在线一区| 丁香亚洲综合激情啪啪综合| 精品88久久久久88久久久 | 亚洲精品视频观看| 成人毛片老司机大片| 亚洲精品在线免费观看视频| 欧美a级理论片| 欧美老肥妇做.爰bbww视频| ...中文天堂在线一区| 懂色av一区二区三区免费观看| 久久久久久久久久久久久夜| 裸体歌舞表演一区二区| 69堂亚洲精品首页| 日韩1区2区日韩1区2区| 欧美精品 国产精品| 午夜久久久久久久久| 欧美色视频在线| 亚洲福利视频一区二区| 欧美精选在线播放| 午夜久久久影院| 91精品国产欧美一区二区成人| 日韩和欧美一区二区三区|