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

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

?? setup.s

?? linux 0.11的內(nèi)核源代碼
?? S
?? 第 1 頁 / 共 2 頁
字號(hào):
mov ds,ax ! source segment ! ds:si??源地址(初始為0x1000:0x0)sub di,disub si,simov cx,#0x8000 ! 移動(dòng)0x8000 字(64k 字節(jié))。repmovswjmp do_move! then we load the segment descriptors! 此后,我們加載段描述符。! 從這里開始會(huì)遇到32 位保護(hù)模式的操作,因此需要Intel 32 位保護(hù)模式編程方面的知識(shí)了,! 有關(guān)這方面的信息請(qǐng)查閱列表后的簡(jiǎn)單介紹或附錄中的詳細(xì)說明。這里僅作概要說明。!! lidt 指令用于加載中斷描述符表(idt)寄存器,它的操作數(shù)是6 個(gè)字節(jié),0-1 字節(jié)是描述符表的! 長(zhǎng)度值(字節(jié));2-5 字節(jié)是描述符表的32 位線性基地址(首地址),其形式參見下面! 219-220 行和223-224 行的說明。中斷描述符表中的每一個(gè)表項(xiàng)(8 字節(jié))指出發(fā)生中斷時(shí)! 需要調(diào)用的代碼的信息,與中斷向量有些相似,但要包含更多的信息。!! lgdt 指令用于加載全局描述符表(gdt)寄存器,其操作數(shù)格式與lidt 指令的相同。全局描述符! 表中的每個(gè)描述符項(xiàng)(8 字節(jié))描述了保護(hù)模式下數(shù)據(jù)和代碼段(塊)的信息。其中包括段的! 最大長(zhǎng)度限制(16 位)、段的線性基址(32 位)、段的特權(quán)級(jí)、段是否在內(nèi)存、讀寫許可以及! 其它一些保護(hù)模式運(yùn)行的標(biāo)志。參見后面205-216 行。!end_move:mov ax,#SETUPSEG ! right, forgot this at first. didn't work :-)mov ds,ax ! ds 指向本程序(setup)段。lidt idt_48 ! load idt with 0,0! 加載中斷描述符表(idt)寄存器,idt_48 是6 字節(jié)操作數(shù)的位置! (見218 行)。前2 字節(jié)表示idt 表的限長(zhǎng),后4 字節(jié)表示idt 表! 所處的基地址。lgdt gdt_48 ! load gdt with whatever appropriate! 加載全局描述符表(gdt)寄存器,gdt_48 是6 字節(jié)操作數(shù)的位置! (見222 行)。! that was painless, now we enable A20! 以上的操作很簡(jiǎn)單,現(xiàn)在我們開啟A20 地址線。參見程序列表后有關(guān)A20 信號(hào)線的說明。call empty_8042 ! 等待輸入緩沖器空。! 只有當(dāng)輸入緩沖器為空時(shí)才可以對(duì)其進(jìn)行寫命令。mov al,#0xD1 ! command write ! 0xD1 命令碼-表示要寫數(shù)據(jù)到out #0x64,al ! 8042 的P2 端口。P2 端口的位1 用于A20 線的選通。! 數(shù)據(jù)要寫到0x60 口。call empty_8042 ! 等待輸入緩沖器空,看命令是否被接受。mov al,#0xDF ! A20 on ! 選通A20 地址線的參數(shù)。out #0x60,alcall empty_8042 ! 輸入緩沖器為空,則表示A20 線已經(jīng)選通。! 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.!! 希望以上一切正常。現(xiàn)在我們必須重新對(duì)中斷進(jìn)行編程??!! 我們將它們放在正好處于intel 保留的硬件中斷后面,在int 0x20-0x2F。!! 在那里它們不會(huì)引起沖突。不幸的是IBM 在原PC 機(jī)中搞糟了,以后也沒有糾正過來。!! PC 機(jī)的bios 將中斷放在了0x08-0x0f,這些中斷也被用于內(nèi)部硬件中斷。!! 所以我們就必須重新對(duì)8259 中斷控制器進(jìn)行編程,這一點(diǎn)都沒勁。mov al,#0x11 ! initialization sequence! 0x11 表示初始化命令開始,是ICW1 命令字,表示邊! 沿觸發(fā)、多片8259 級(jí)連、最后要發(fā)送ICW4 命令字。out #0x20,al ! send it to 8259A-1 ! 發(fā)送到8259A 主芯片。.word 0x00eb,0x00eb ! jmp $+2, jmp $+2 ! $ 表示當(dāng)前指令的地址,! 兩條跳轉(zhuǎn)指令,跳到下一條指令,起延時(shí)作用。out #0xA0,al ! and to 8259A-2 ! 再發(fā)送到8259A 從芯片。.word 0x00eb,0x00ebmov al,#0x20 ! start of hardware int's (0x20)out #0x21,al ! 送主芯片ICW2 命令字,起始中斷號(hào),要送奇地址。.word 0x00eb,0x00ebmov al,#0x28 ! start of hardware int's 2 (0x28)out #0xA1,al ! 送從芯片ICW2 命令字,從芯片的起始中斷號(hào)。.word 0x00eb,0x00ebmov al,#0x04 ! 8259-1 is masterout #0x21,al ! 送主芯片ICW3 命令字,主芯片的IR2 連從芯片INT。.word 0x00eb,0x00eb !參見代碼列表后的說明。mov al,#0x02 ! 8259-2 is slaveout #0xA1,al ! 送從芯片ICW3 命令字,表示從芯片的INT 連到主芯! 片的IR2 引腳上。.word 0x00eb,0x00ebmov al,#0x01 ! 8086 mode for bothout #0x21,al ! 送主芯片ICW4 命令字。8086 模式;普通EOI 方式,! 需發(fā)送指令來復(fù)位。初始化結(jié)束,芯片就緒。.word 0x00eb,0x00ebout #0xA1,al !送從芯片ICW4 命令字,內(nèi)容同上。.word 0x00eb,0x00ebmov al,#0xFF ! mask off all interrupts for nowout #0x21,al ! 屏蔽主芯片所有中斷請(qǐng)求。.word 0x00eb,0x00ebout #0xA1,al !屏蔽從芯片所有中斷請(qǐng)求。! 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.!! 哼,上面這段當(dāng)然沒勁??,希望這樣能工作,而且我們也不再需要乏味的BIOS 了(除了!! 初始的加載?。BIOS 子程序要求很多不必要的數(shù)據(jù),而且它一點(diǎn)都沒趣。那是“真正”的!! 程序員所做的事。! 這里設(shè)置進(jìn)入32 位保護(hù)模式運(yùn)行。首先加載機(jī)器狀態(tài)字(lmsw - Load Machine Status Word),也稱! 控制寄存器CR0,其比特位0 置1 將導(dǎo)致CPU 工作在保護(hù)模式。mov ax,#0x0001 ! protected mode (PE) bit ! 保護(hù)模式比特位(PE)。lmsw ax ! This is it! ! 就這樣加載機(jī)器狀態(tài)字!jmpi 0,8 ! jmp offset 0 of segment 8 (cs) ! 跳轉(zhuǎn)至cs 段8,偏移0 處。! 我們已經(jīng)將system 模塊移動(dòng)到0x00000 開始的地方,所以這里的偏移地址是0。這里的段! 值的8 已經(jīng)是保護(hù)模式下的段選擇符了,用于選擇描述符表和描述符表項(xiàng)以及所要求的特權(quán)級(jí)。! 段選擇符長(zhǎng)度為16 位(2 字節(jié));位0-1 表示請(qǐng)求的特權(quán)級(jí)0-3,linux 操作系統(tǒng)只! 用到兩級(jí):0 級(jí)(系統(tǒng)級(jí))和3 級(jí)(用戶級(jí));位2 用于選擇全局描述符表(0)還是局部描! 述符表(1);位3-15 是描述符表項(xiàng)的索引,指出選擇第幾項(xiàng)描述符。所以段選擇符! 8(0b0000,0000,0000,1000)表示請(qǐng)求特權(quán)級(jí)0、使用全局描述符表中的第1 項(xiàng),該項(xiàng)指出! 代碼的基地址是0(參見209 行),因此這里的跳轉(zhuǎn)指令就會(huì)去執(zhí)行system 中的代碼。! 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.! 下面這個(gè)子程序檢查鍵盤命令隊(duì)列是否為空。這里不使用超時(shí)方法 - 如果這里死機(jī),! 則說明PC 機(jī)有問題,我們就沒有辦法再處理下去了。! 只有當(dāng)輸入緩沖器為空時(shí)(狀態(tài)寄存器位2 = 0)才可以對(duì)其進(jìn)行寫命令。empty_8042:.word 0x00eb,0x00eb ! 這是兩個(gè)跳轉(zhuǎn)指令的機(jī)器碼(跳轉(zhuǎn)到下一句),相當(dāng)于延時(shí)空操作。in al,#0x64 ! 8042 status port ! 讀AT 鍵盤控制器狀態(tài)寄存器。test al,#2 ! is input buffer full? ! 測(cè)試位2,輸入緩沖器滿?jnz empty_8042 ! yes - loopretgdt: ! 全局描述符表開始處。描述符表由多個(gè)8 字節(jié)長(zhǎng)的描述符項(xiàng)組成。! 這里給出了3 個(gè)描述符項(xiàng)。第1 項(xiàng)無用(206 行),但須存在。第2 項(xiàng)是系統(tǒng)代碼段! 描述符(208-211 行),第3 項(xiàng)是系統(tǒng)數(shù)據(jù)段描述符(213-216 行)。每個(gè)描述符的具體! 含義參見列表后說明。.word 0,0,0,0 ! dummy ! 第1 個(gè)描述符,不用。! 這里在gdt 表中的偏移量為0x08,當(dāng)加載代碼段寄存器(段選擇符)時(shí),使用的是這個(gè)偏移值。.word 0x07FF ! 8Mb - limit=2047 (2048*4096=8Mb).word 0x0000 ! base address=0.word 0x9A00 ! code read/exec.word 0x00C0 ! granularity=4096, 386! 這里在gdt 表中的偏移量是0x10,當(dāng)加載數(shù)據(jù)段寄存器(如ds 等)時(shí),使用的是這個(gè)偏移值。.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! 全局表長(zhǎng)度為2k 字節(jié),因?yàn)槊? 字節(jié)組成一個(gè)段描述符項(xiàng)! 所以表中共可有256 項(xiàng)。.word 512+gdt,0x9 ! gdt base = 0X9xxxx! 4 個(gè)字節(jié)構(gòu)成的內(nèi)存線性地址:0x0009<<16 + 0x0200+gdt! 也即0x90200 + gdt(即在本程序段中的偏移地址,205 行)。.textendtext:.dataenddata:.bssendbss:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲av另类| 欧美精品日韩一区| 国产日韩亚洲欧美综合| 黄色资源网久久资源365| 日韩欧美中文一区二区| 蜜臀久久99精品久久久画质超高清| 欧美无砖砖区免费| 天堂va蜜桃一区二区三区漫画版| 337p亚洲精品色噜噜狠狠| 麻豆精品国产传媒mv男同| 久久久不卡影院| 91视频你懂的| 日韩激情中文字幕| 久久综合网色—综合色88| 国产成人精品免费在线| 亚洲欧美激情小说另类| 欧美色爱综合网| 精品在线一区二区| 中文字幕在线观看一区| 欧美伦理视频网站| 国产一区二区三区四区五区入口| 中文字幕一区在线观看视频| 在线观看日韩电影| 国产在线不卡视频| 亚洲免费成人av| 日韩欧美国产1| 懂色av一区二区三区免费看| 亚洲一区二区av在线| 精品国产污污免费网站入口 | 欧美成人激情免费网| 国产精品99久久久久久似苏梦涵| 综合欧美亚洲日本| 91精品国产91综合久久蜜臀| 成人在线一区二区三区| 日韩精品高清不卡| 日韩毛片高清在线播放| 欧美一级夜夜爽| 在线观看www91| 国产成人高清在线| 免费一区二区视频| 一区二区三区四区精品在线视频| 欧美精品一区二区三| 在线观看免费成人| 不卡视频一二三四| 精品中文字幕一区二区| 亚洲午夜av在线| 国产欧美日韩激情| 欧美videofree性高清杂交| 色狠狠一区二区| 成人网男人的天堂| 国产制服丝袜一区| 美国十次了思思久久精品导航| 一区二区视频在线| 国产精品三级电影| 2020国产精品久久精品美国| 欧美三级三级三级爽爽爽| 色综合一区二区三区| 成人免费三级在线| 国产精品亚洲人在线观看| 日韩不卡一区二区三区| 亚洲精品视频在线| 成人免费在线观看入口| 国产精品国产三级国产专播品爱网 | 亚洲视频在线一区| 国产精品久久久一本精品| 久久久久高清精品| ww亚洲ww在线观看国产| 日韩欧美中文字幕一区| 宅男噜噜噜66一区二区66| 欧美天堂一区二区三区| 在线精品视频免费播放| 91麻豆免费观看| 99国内精品久久| 99久久精品情趣| 99视频精品全部免费在线| 成人黄色在线网站| 91在线一区二区| caoporen国产精品视频| 成人av电影在线播放| av激情亚洲男人天堂| 成+人+亚洲+综合天堂| 91色|porny| 色婷婷久久一区二区三区麻豆| 色欧美片视频在线观看在线视频| 91在线观看视频| 在线观看亚洲精品| 欧美狂野另类xxxxoooo| 日韩一区二区三区电影在线观看 | 国产欧美一区视频| 欧美韩国日本一区| 亚洲少妇最新在线视频| 一区二区三区在线视频播放 | 欧美三级乱人伦电影| 精品1区2区3区| 欧美日本一区二区三区四区| 欧美一卡二卡在线观看| 久久久久久免费| 国产精品成人免费| 亚洲一区二区三区三| 青娱乐精品视频| 国产一区二区三区国产| www.日韩精品| 69堂精品视频| 久久久美女毛片| 专区另类欧美日韩| 日日摸夜夜添夜夜添亚洲女人| 久久99精品视频| 成人黄色软件下载| 在线不卡中文字幕| 久久久99精品免费观看不卡| 日韩伦理av电影| 免费成人在线影院| 91亚洲午夜精品久久久久久| 欧美日韩精品一区二区天天拍小说| 精品欧美乱码久久久久久| 综合欧美一区二区三区| 青青草原综合久久大伊人精品| 国产白丝精品91爽爽久久 | 国内外精品视频| 91看片淫黄大片一级在线观看| 欧美日韩精品一二三区| 国产日产欧美精品一区二区三区| 日韩久久一区二区| 久久69国产一区二区蜜臀| 成人国产精品免费网站| 日韩一二三区视频| 亚洲精品国产精华液| 国产激情91久久精品导航| 欧美日韩1234| 亚洲欧美日韩电影| 国产一区二区电影| 91精品综合久久久久久| 亚洲免费资源在线播放| 国产精品一区二区免费不卡| 欧美精品一级二级三级| 亚洲欧洲无码一区二区三区| 久久99久久精品欧美| 欧美视频日韩视频| 中文字幕+乱码+中文字幕一区| 日韩**一区毛片| 欧美日韩视频专区在线播放| 国产精品免费视频观看| 精品无码三级在线观看视频| 欧美精品在线观看一区二区| 1区2区3区欧美| 成人午夜在线播放| 国产亚洲欧美激情| 蜜臀va亚洲va欧美va天堂| 欧美在线色视频| 亚洲美女偷拍久久| 99精品国产一区二区三区不卡| 国产日韩欧美高清在线| 国产中文字幕一区| 欧美成人三级在线| 美女视频一区二区| 日韩一区二区电影在线| 亚洲r级在线视频| 色94色欧美sute亚洲线路一久| 欧美国产精品一区二区| 国产99精品在线观看| 精品精品欲导航| 极品少妇一区二区三区精品视频| 欧美高清www午色夜在线视频| 艳妇臀荡乳欲伦亚洲一区| 色综合一区二区三区| 18涩涩午夜精品.www| 99久久免费国产| 中文字幕在线不卡视频| 99久久国产免费看| 亚洲视频综合在线| 在线亚洲人成电影网站色www| 亚洲视频一二三| 色美美综合视频| 亚洲一区二区三区三| 欧美群妇大交群的观看方式| 亚洲18色成人| 日韩亚洲欧美在线| 精品一区二区精品| 国产日韩精品一区二区浪潮av | 亚洲五月六月丁香激情| 欧美在线一区二区| 日韩二区在线观看| 日韩一区二区精品在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 久久精品免费在线观看| 成人国产精品免费| 伊人开心综合网| 欧美精品99久久久**| 精品一区二区三区日韩| 久久久国产午夜精品| www.欧美色图| 五月天亚洲精品| 精品999在线播放| 成人a免费在线看| 亚洲妇熟xx妇色黄| 欧美变态口味重另类| 丁香婷婷综合网| 亚洲国产va精品久久久不卡综合| 欧美一区二区三区视频在线观看| 国产一区二区三区免费观看|