freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

微型操作系統(tǒng)的設(shè)計操作系統(tǒng)課程設(shè)計-文庫吧

2025-06-22 13:50 本頁面


【正文】 ...........................146 參考文獻 .........................................................151 系統(tǒng)需求分析 設(shè)計內(nèi)容與目的 設(shè)計一個微型操作系統(tǒng),在實模式下從軟盤引導(dǎo)計算機啟動,并在保護模式下運行“內(nèi)核” 。通過分析,該設(shè)計需要完成以下任務(wù):(1)搭建虛擬機環(huán)境,為編寫一個微操作系統(tǒng)奠定基礎(chǔ)。(2)利用 NASM匯編器編譯啟動匯編程序。(3)完成在實模式下從軟盤引導(dǎo)計算機。(4)學(xué)習(xí)本次設(shè)計需要的實模式到保護模式切換的相關(guān)知識。理解 GDT在保護模式的工作機理。(5)編寫在保護模式下的引導(dǎo)程序,并用 C語言模擬寫一個“內(nèi)核” ,并實現(xiàn)在保護模下通過引導(dǎo)程序啟動計算機并將該“內(nèi)核”加載到內(nèi)存中。最后切換到內(nèi)核。 設(shè)計的實現(xiàn)方案 本設(shè)計完成一個真正意義上的操作系統(tǒng)引導(dǎo),計算機啟動程序?qū)挠嬎銠C啟動時的 16位的實模式轉(zhuǎn)到現(xiàn)在通用的 32位的保護模式下?,F(xiàn)在的操作系統(tǒng)除了最低層的部份之外,均由高級語言完成,在本設(shè)計中也將用高級語言來編寫內(nèi)核。實現(xiàn)的一個內(nèi)核是用 C語言編寫的。用匯編寫的引導(dǎo)程序,把 C 語言寫的內(nèi)核載入并執(zhí)行,這就是本設(shè)計將要完成的主要任務(wù)。內(nèi)核中的鍵盤中斷設(shè)計 intel 8259a。intel 8259a 可編程中斷控制器可以為 CPU 處理 8 位優(yōu)先級中斷,而且,無須額外電路即可級聯(lián)擴展至 64 位優(yōu)先級中斷處理。通過對 8259A 的初始化和控制,可以實現(xiàn)在保護模式下的鍵盤中斷。 功能模塊圖該設(shè)計的功能模塊如下圖所示:圖 功能模塊圖 計算機引導(dǎo)程序本程序的主要功能是實現(xiàn)實模式和保護模式的切換。(1)切換到保護方式的準備工作 在從實模式切換到保護模式之前,必須作必要的準備。需要建立合適的全局描述符表,并使用 GDTR 指向該 GDT。因為在切換到保護方式時,至少要把代碼段的選擇子裝載到CS,所以 GDT 中至少含有代碼段的描述符。 (2)由實模式切換到保護模式 在做好準備后,從實模式切換到保護模式原則上只要把控制寄存器 CR0 中的 PE 位置1 即可。 mov eax ,cr0 。 微型操作系統(tǒng)實模式下從軟盤引導(dǎo)計算機“內(nèi)核”實現(xiàn)鍵盤中斷并顯示鍵盤值從鍵盤輸入值中斷響應(yīng)顯示 or eax , 1 mov cr0 ,eax 實際情況要比這復(fù)雜些。執(zhí)行上面的三條指令后,處理器轉(zhuǎn)入保護模式,但 CS 中的內(nèi)容還是實模式下代碼段的段值,而不是保護模式下代碼段的選擇子,所以在取指令之前得把代碼段的選擇子裝入 CS。為此,緊接著這三條指令,安排一條如下所示的段間轉(zhuǎn)移指令 jmp gdt_code_addr:code_32 。 跳入 32位的代碼段中 這條段間轉(zhuǎn)移指令 在實模式下被預(yù)取并在保護方式下被執(zhí)行 。利用這條段間轉(zhuǎn)移指令可把保護模式下代碼段的選擇子裝入 CS,同時也刷新指令預(yù)取隊列。從此真正進入保護模式。 內(nèi)核鍵盤中斷實現(xiàn)要使用中斷方式,就必須編寫中斷處理程序,通過 IDT(中斷描述符表)讓 CPU知道此中斷的中斷處理程序在什么地方,此表的每一個表項對應(yīng)一個中斷,每一個表項都指明此中斷的中斷處理程序在什么地方。因此首要的任務(wù)是要構(gòu)造一個中斷描述符表。 中斷描述符表一共可有 256項,即 256個中斷。頭三十二項,也就是 0~31號中斷,已經(jīng)被 CPU及硬件所占用了,因此只能從第三十三項即 32號中斷開始構(gòu)造中斷及中斷服務(wù)程序 。可編程中斷控制器(PIC)功能上是中斷驅(qū)動系統(tǒng)環(huán)境下的總管家,決定哪一個輸入優(yōu)先級最高,確定輸入請求是否擁有比當前服務(wù)級別更高的優(yōu)先級,并且將決定出的中斷通知 CPU。為了使中斷系統(tǒng)起作用,需要對 PIC(可編程的中斷控制器)進行編程,PIC 是可編程的中斷控制器,它可以處理硬件中斷請求,當硬件發(fā)生中斷時,PIC把中斷信號送到 CPU,然后 CPU處理中斷。實際上有兩上 PIC,第一個PIC1(端口號 0x20~0x21)處理 IRQ0~IRQ7的請求,第二個 PIC2(端口號0xA0~0xA1)處理 IRQ8~IRQ15 的請求 CPU只知道邏輯意義上的中斷,不區(qū)分是物理上的軟件中斷還是硬件中斷,因此必須把 CPU不知道的物理中斷,映射為CPU知道的邏輯意義上的中斷。在實模式下,這項工作由 BIOS來做,在保護模式下需要自己編程。通過發(fā)送一些 ICW(初始化命令字)來實現(xiàn)對 PICs的控制和初始化。1. 發(fā)送 ICW1 到 PIC1(20h) 與 PIC2(A0h) 中 2. 發(fā)送 ICW2 到 PIC1(21h) 與 PIC2(A1h) 中 3. 發(fā)送 ICW3 到 PIC1(21h) 與 PIC2(A1h)中 4. 發(fā)送 ICW4 到 PIC1(21h) 與 PIC2(A1h)中 利用內(nèi)嵌匯編發(fā)送一些 ICW(初始化命令字)來實現(xiàn)對 PICs的控制和初始化,實現(xiàn)代碼如下:__asm__(mov $0x11,%al。out %al,$0x20 \n)。 __asm__(mov $0x11,%al。out %al,$0xA0 \n)。 __asm__(mov $0x20,%al。out %al,$0x21 \n)。 __asm__(mov $0x28,%al。out %al,$0xA1 \n)。 __asm__(mov $0x04,%al。out %al,$0x21 \n)。 __asm__(mov
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1