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

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

?? head.s

?? LINUX 0.11版內(nèi)核代碼。 并有代碼分析說明。
?? S
?? 第 1 頁 / 共 2 頁
字號:
/** linux/boot/head.s** (C) 1991 Linus Torvalds*//** head.s contains the 32-bit startup code.** NOTE!!! Startup happens at absolute address 0x00000000, which is also where* the page directory will exist. The startup code will be overwritten by* the page directory.*//** head.s 含有32 位啟動代碼。* 注意!!! 32 位啟動代碼是從絕對地址0x00000000 開始的,這里也同樣是頁目錄將存在的地方,* 因此這里的啟動代碼將被頁目錄覆蓋掉。*/.text.globl _idt,_gdt,_pg_dir,_tmp_floppy_area_pg_dir: # 頁目錄將會存放在這里。startup_32: # 18-22 行設(shè)置各個數(shù)據(jù)段寄存器。movl $0x10,%eax # 對于GNU 匯編來說,每個直接數(shù)要以'$'開始,否則是表示地址。# 每個寄存器名都要以'%'開頭,eax 表示是32 位的ax 寄存器。# 再次注意!!! 這里已經(jīng)處于32 位運行模式,因此這里的$0x10 并不是把地址0x10 裝入各個# 段寄存器,它現(xiàn)在其實是全局段描述符表中的偏移值,或者更正確地說是一個描述符表項# 的選擇符。有關(guān)選擇符的說明請參見setup.s 中193 行下的說明。這里$0x10 的含義是請求# 特權(quán)級0(位0-1=0)、選擇全局描述符表(位2=0)、選擇表中第2 項(位3-15=2)。它正好指在當(dāng)前的Linux 操作系統(tǒng)中,gas 和gld 已經(jīng)分別更名為as 和ld。# 向表中的數(shù)據(jù)段描述符項。(描述符的具體數(shù)值參見前面setup.s 中212,213 行)# 下面代碼的含義是:置ds,es,fs,gs 中的選擇符為setup.s 中構(gòu)造的數(shù)據(jù)段(全局段描述符表# 的第2 項)=0x10,并將堆棧放置在數(shù)據(jù)段中的_stack_start 數(shù)組內(nèi),然后使用新的中斷描述# 符表和全局段描述表.新的全局段描述表中初始內(nèi)容與setup.s 中的完全一樣。mov %ax,%dsmov %ax,%esmov %ax,%fsmov %ax,%gslss _stack_start,%esp # 表示_stack_start??ss:esp,設(shè)置系統(tǒng)堆棧。# stack_start 定義在kernel/sched.c,69 行。call setup_idt # 調(diào)用設(shè)置中斷描述符表子程序。call setup_gdt # 調(diào)用設(shè)置全局描述符表子程序。movl $0x10,%eax # reload all the segment registersmov %ax,%ds # after changing gdt. CS was alreadymov %ax,%es # reloaded in 'setup_gdt'mov %ax,%fs # 因為修改了gdt,所以需要重新裝載所有的段寄存器。mov %ax,%gs # CS 代碼段寄存器已經(jīng)在setup_gdt 中重新加載過了。lss _stack_start,%esp# 32-36 行用于測試A20 地址線是否已經(jīng)開啟。采用的方法是向內(nèi)存地址0x000000 處寫入任意# 一個數(shù)值,然后看內(nèi)存地址0x100000(1M)處是否也是這個數(shù)值。如果一直相同的話,就一直# 比較下去,也即死循環(huán)、死機。表示地址A20 線沒有選通,結(jié)果內(nèi)核就不能使用1M 以上內(nèi)存。xorl %eax,%eax1: incl %eax # check that A20 really IS enabledmovl %eax,0x000000 # loop forever if it isn'tcmpl %eax,0x100000je 1b # '1b'表示向后(backward)跳轉(zhuǎn)到標(biāo)號1 去(33 行)。# 若是'5f'則表示向前(forward)跳轉(zhuǎn)到標(biāo)號5 去。/** NOTE! 486 should set bit 16, to check for write-protect in supervisor* mode. Then it would be unnecessary with the "verify_area()"-calls.* 486 users probably want to set the NE (#5) bit also, so as to use* int 16 for math errors.*//** 注意! 在下面這段程序中,486 應(yīng)該將位16 置位,以檢查在超級用戶模式下的寫保護,* 此后"verify_area()"調(diào)用中就不需要了。486 的用戶通常也會想將NE(#5)置位,以便* 對數(shù)學(xué)協(xié)處理器的出錯使用int 16。*/# 下面這段程序(43-65)用于檢查數(shù)學(xué)協(xié)處理器芯片是否存在。方法是修改控制寄存器CR0,在# 假設(shè)存在協(xié)處理器的情況下執(zhí)行一個協(xié)處理器指令,如果出錯的話則說明協(xié)處理器芯片不存在,# 需要設(shè)置CR0 中的協(xié)處理器仿真位EM(位2),并復(fù)位協(xié)處理器存在標(biāo)志MP(位1)。movl %cr0,%eax # check math chipandl $0x80000011,%eax # Save PG,PE,ET/* "orl $0x10020,%eax" here for 486 might be good */orl $2,%eax # set MPmovl %eax,%cr0call check_x87jmp after_page_tables # 跳轉(zhuǎn)到135 行。/** We depend on ET to be correct. This checks for 287/387.*//** 我們依賴于ET 標(biāo)志的正確性來檢測287/387 存在與否。*/check_x87:fninitfstsw %axcmpb $0,%alje 1f /* no coprocessor: have to set bits */movl %cr0,%eax # 如果存在的則向前跳轉(zhuǎn)到標(biāo)號1 處,否則改寫cr0。xorl $6,%eax /* reset MP, set EM */movl %eax,%cr0ret.align 2 # 這里".align 2"的含義是指存儲邊界對齊調(diào)整。"2"表示調(diào)整到地址最后2 位為零,# 即按4 字節(jié)方式對齊內(nèi)存地址。1: .byte 0xDB,0xE4 /* fsetpm for 287, ignored by 387 */ # 287 協(xié)處理器碼。ret/** setup_idt** sets up a idt with 256 entries pointing to* ignore_int, interrupt gates. It then loads* idt. Everything that wants to install itself* in the idt-table may do so themselves. Interrupts* are enabled elsewhere, when we can be relatively* sure everything is ok. This routine will be over-* written by the page tables.*//** 下面這段是設(shè)置中斷描述符表子程序 setup_idt** 將中斷描述符表idt 設(shè)置成具有256 個項,并都指向ignore_int 中斷門。然后加載中斷* 描述符表寄存器(用lidt 指令)。真正實用的中斷門以后再安裝。當(dāng)我們在其它地方認(rèn)為一切* 都正常時再開啟中斷。該子程序?qū)豁摫砀采w掉。*/# 中斷描述符表中的項雖然也是8 字節(jié)組成,但其格式與全局表中的不同,被稱為門描述符# (Gate Descriptor)。它的0-1,6-7 字節(jié)是偏移量,2-3 字節(jié)是選擇符,4-5 字節(jié)是一些標(biāo)志。setup_idt:lea ignore_int,%edx # 將ignore_int 的有效地址(偏移值)值??edx 寄存器movl $0x00080000,%eax # 將選擇符0x0008 置入eax 的高16 位中。movw %dx,%ax /* selector = 0x0008 = cs */# 偏移值的低16 位置入eax 的低16 位中。此時eax 含有#門描述符低4 字節(jié)的值。movw $0x8E00,%dx /* interrupt gate - dpl=0, present */# 此時edx 含有門描述符高4 字節(jié)的值。lea _idt,%edi # _idt 是中斷描述符表的地址。mov $256,%ecxrp_sidt:movl %eax,(%edi) # 將啞中斷門描述符存入表中。movl %edx,4(%edi)addl $8,%edi # edi 指向表中下一項。dec %ecxjne rp_sidtlidt idt_descr # 加載中斷描述符表寄存器值。ret/** setup_gdt** This routines sets up a new gdt and loads it.* Only two entries are currently built, the same* ones that were built in init.s. The routine* is VERY complicated at two whole lines, so this* rather long comment is certainly needed :-).* This routine will beoverwritten by the page tables.*//** 設(shè)置全局描述符表項 setup_gdt* 這個子程序設(shè)置一個新的全局描述符表gdt,并加載。此時僅創(chuàng)建了兩個表項,與前* 面的一樣。該子程序只有兩行,“非常的”復(fù)雜,所以當(dāng)然需要這么長的注釋了?。setup_gdt:lgdt gdt_descr # 加載全局描述符表寄存器(內(nèi)容已設(shè)置好,見232-238 行)。ret/** I put the kernel page tables right after the page directory,* using 4 of them to span 16 Mb of physical memory. People with* more than 16MB will have to expand this.*//* Linus 將內(nèi)核的內(nèi)存頁表直接放在頁目錄之后,使用了4 個表來尋址16 Mb 的物理內(nèi)存。* 如果你有多于16 Mb 的內(nèi)存,就需要在這里進行擴充修改。*/# 每個頁表長為4 Kb 字節(jié),而每個頁表項需要4 個字節(jié),因此一個頁表共可以存放1000 個表項,# 如果一個表項尋址4 Kb 的地址空間,則一個頁表就可以尋址4 Mb 的物理內(nèi)存。# 頁表項的格式為:項的前0-11 位存放一些標(biāo)志,如是否在內(nèi)存中(P 位0)、讀寫許可(R/W 位1)、# 普通用戶還是超級用戶使用(U/S 位2)、是否修改過(是否臟了)(D 位6)等;表項的位12-31 是# 頁框地址,用于指出一頁內(nèi)存的物理起始地址。.org 0x1000 # 從偏移0x1000 處開始是第1 個頁表(偏移0 開始處將存放頁表目錄)。pg0:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av一区二区在线播放| 国产高清视频一区| 激情六月婷婷久久| 色国产精品一区在线观看| 精品国产亚洲在线| 午夜精品久久久久久久久久 | 色欧美乱欧美15图片| 26uuu亚洲| 日本欧美在线看| 色综合久久九月婷婷色综合| xfplay精品久久| 日本伊人午夜精品| 欧美性大战xxxxx久久久| 中文字幕亚洲视频| 国产福利一区二区三区视频| 欧美成人aa大片| 性久久久久久久久| 欧美色偷偷大香| 一区二区三区免费看视频| 不卡av在线免费观看| 久久奇米777| 国产一区欧美一区| 日韩一区二区免费电影| 亚洲狠狠爱一区二区三区| 在线视频欧美精品| 一区二区三区在线视频免费| 92精品国产成人观看免费| 中文字幕制服丝袜一区二区三区| 国产成人午夜视频| 国产日韩欧美激情| 丁香六月久久综合狠狠色| 久久久噜噜噜久久人人看| 国产毛片精品视频| 国产午夜精品在线观看| 国产成人一级电影| 中文字幕一区二区三| 色综合中文字幕国产| 国产成人免费9x9x人网站视频| 日韩免费在线观看| 国产麻豆日韩欧美久久| 亚洲国产高清在线观看视频| 成人黄色免费短视频| 亚洲欧洲精品成人久久奇米网| 91视频观看视频| 亚洲成a人v欧美综合天堂下载| 51精品秘密在线观看| 久久99这里只有精品| 精品成人一区二区三区| 国产福利一区在线| 亚洲欧美日韩中文播放 | 日韩欧美国产1| 国内精品伊人久久久久av影院| 国产三级欧美三级日产三级99 | 经典三级在线一区| 国产精品女主播av| 日本电影欧美片| 日本va欧美va瓶| 2017欧美狠狠色| 日本黄色一区二区| 三级成人在线视频| 久久精品亚洲一区二区三区浴池| 国产99久久久久久免费看农村| 亚洲欧洲中文日韩久久av乱码| 欧美日韩一区二区三区免费看| 精品制服美女丁香| 日韩一区在线免费观看| 91麻豆精品国产综合久久久久久 | 欧美精品一二三| 国产一区999| 午夜国产不卡在线观看视频| 26uuuu精品一区二区| 欧美伊人精品成人久久综合97| 美女网站视频久久| 亚洲人吸女人奶水| 国产一区二区三区在线观看精品 | 黄色资源网久久资源365| 日本一区二区三区免费乱视频| 日本韩国精品在线| 国产原创一区二区| 亚洲成人手机在线| 国产精品国产自产拍高清av| 51久久夜色精品国产麻豆| bt欧美亚洲午夜电影天堂| 美女被吸乳得到大胸91| 亚洲精品欧美专区| 久久精品夜色噜噜亚洲a∨| 91麻豆精品国产91久久久使用方法 | 亚洲激情图片一区| 久久久亚洲精华液精华液精华液| 欧美少妇bbb| av日韩在线网站| 国产高清成人在线| 精品一区二区三区在线播放视频 | 7777精品伊人久久久大香线蕉经典版下载 | 亚洲图片有声小说| 日韩毛片视频在线看| 久久精品视频一区二区| 欧美一级久久久久久久大片| 日本韩国欧美一区二区三区| 成人app软件下载大全免费| 激情深爱一区二区| 美女www一区二区| 麻豆精品一区二区综合av| 天天射综合影视| 亚洲成av人影院| 亚洲bt欧美bt精品777| 亚洲曰韩产成在线| 一区二区三区欧美| 亚洲一区二区在线免费看| 亚洲精品亚洲人成人网 | 日韩va欧美va亚洲va久久| 一区二区三区在线看| 亚洲男女毛片无遮挡| 亚洲色图清纯唯美| 亚洲精品欧美专区| 洋洋av久久久久久久一区| 亚洲欧美国产77777| 一区二区三区中文免费| 亚洲一级不卡视频| 亚洲v中文字幕| 日韩电影免费在线| 久久se这里有精品| 国产乱子伦视频一区二区三区 | 欧美日韩在线亚洲一区蜜芽| 欧美在线一二三四区| 欧美三级电影网站| 欧美一区二区三区人| 日韩视频免费观看高清完整版 | 日韩欧美电影在线| 亚洲精品一区二区三区精华液 | 一区二区三区四区蜜桃| 亚洲18女电影在线观看| 免费欧美高清视频| 国产一区二区三区不卡在线观看 | 国产一二三精品| 97久久精品人人做人人爽50路| 91麻豆免费看| 欧美一区二区私人影院日本| 欧美videofree性高清杂交| 日本一区二区视频在线观看| 亚洲丝袜自拍清纯另类| 日韩激情一二三区| 成人污污视频在线观看| 日本电影欧美片| 欧美mv日韩mv国产网站| 亚洲桃色在线一区| 裸体在线国模精品偷拍| gogogo免费视频观看亚洲一| 88在线观看91蜜桃国自产| 久久精品一区蜜桃臀影院| 一区二区三区精密机械公司| 狠狠色丁香婷婷综合久久片| k8久久久一区二区三区| 制服丝袜激情欧洲亚洲| 亚洲国产精品传媒在线观看| 洋洋成人永久网站入口| 国产精品一区二区在线观看不卡 | 欧美性xxxxxx少妇| 国产校园另类小说区| 亚洲一区二区美女| 国产精品 欧美精品| 欧美三级在线看| 欧美激情资源网| 蜜桃一区二区三区四区| 色综合久久久久综合体桃花网| 欧美成人精品1314www| 亚洲精品日产精品乱码不卡| 狠狠色伊人亚洲综合成人| 欧美人伦禁忌dvd放荡欲情| 国产精品国产三级国产专播品爱网| 免费的成人av| 欧美在线影院一区二区| 中文欧美字幕免费| 精品在线免费视频| 欧美丰满美乳xxx高潮www| 亚洲四区在线观看| 国产99久久久国产精品免费看| 3d成人动漫网站| 亚洲成人免费在线| 91小视频免费看| 欧美激情在线一区二区| 极品少妇xxxx精品少妇| 欧美肥大bbwbbw高潮| 亚洲一区二区在线免费看| 99国产欧美另类久久久精品| 久久久久久免费网| 免费的成人av| 日韩欧美国产综合| 日韩av二区在线播放| 欧美日本一区二区| 亚洲一区二区三区四区五区黄| 暴力调教一区二区三区| 中文字幕乱码日本亚洲一区二区| 国内不卡的二区三区中文字幕| 91精品国产综合久久久久久漫画| 视频一区欧美精品| 欧美一区二区三区婷婷月色| 亚洲国产aⅴ天堂久久| 欧美视频一区二区| 视频一区在线播放|