操作過程
說明:windows10 作業系統下
1,就這一點
把這個資料夾複製出來到當前目錄。
進入tolset,新增helloos03
在資料夾中先放!cons_nt.bat,這個bat的作用就是在當前目錄下開啟cmd。
helloos03.img 是通過nask.exe編譯hellloos03.nas得到。
之後再建立run.bat,內容是這個
copy helloos03.img ..\z_tools\qemu\fdimage0.bin
..\z_tools\make.exe -c ../z_tools/qemu
其操作就是把helloo03.img複製成fdimage0.bin放進qemu裡面,qemu是乙個軟盤模擬器,通過這個軟體執行就是再執行fdimage0.bin中的程式了。第二行的make是執行qemu目錄下的makefile,makefile裡面是指明執行qemu-win.bat,這個批處理檔案中內容是:
@set sdl_videodriver=windib;設定qemu的相關變數...
@set qemu_audio_drv=none
@set qemu_audio_log_to_monitor=0
qemu.exe -l . -m 32 -localtime -std-vga -fda fdimage0.bin
意思是通過qemu.exe把fdimage0.bin拉起來,fdimage0.bin就相當於錄製好了的作業系統檔案。再qemu.exe上跑了起來。
具體描述
**:
接下來講講**。
org 0x7c00 ;指明程式的裝載位址
mov ax,0 ; 初始化 暫存器
mov ss,0 ; ss暫存器,設定成0
mov sp,0x7c00 ; sp棧指標,設在程式裝載區最開始的地方,這樣做我覺得不對,不過現在程式沒有跑
mov ds,ax ; ds資料暫存器
mov es,ax ; es段暫存器
mov si,msg ; si源變位址暫存器。 把msg的記憶體區域都讀過來
; 啊我待會得去把彙編暫存器給複習一下
putloop: ; 這是迴圈輸出的
mov al,[si] ; 從msg 裡面讀取資料
add si,1 ; si暫存器 + 1
cmp al,0 ; 是不是0,是就跳出去
je fin
; 這是顯示函式的標準寫法
mov ah,0x0e ; 不等於就這裡,把0x0e放在高位
mov bx,5 ; 這裡是搞個顏色
int 0x10 ; 呼叫顯示中斷,這個中斷再bios裡面的
jmp putloop ; 迴圈寫入
fin:
hltjmp fin
msg:
db 0x0a, 0x0a
db "hello,world"
db 0x0a
db 0
resb 0x7dfe-$ ; 從後面一直到這裡,全部寫0
db 0x55, 0xaa ; 必須 0x, 0x55aa
如上**,注釋也寫的很清楚,接下來說下**的含義與及一些需要明白的小知識點。
第一段**,意義在於初始化需要用的暫存器,清零的清零,設值的設值。
第二段**,指定位置msg處,讀hello,world
第三段**,呼叫 10 號中斷,展示對應的字元。
第四段**,迴圈阻塞住,展示不退出。
第五段**,msg,要展示的資料區。
第六段**,填零,啟動區標誌。
需要知道的基本常識
在彙編中,中斷的呼叫的時候需要設定相關的暫存器,因為執行的中斷會去對應的暫存器中讀取值,類似於函式傳參。
作業系統中bios執行完畢以後,會去找到0x7c00位置開始執行。在載入主驅動區的時候比那辨別最後的位置是不是0x55aa,如果是就認為他是bios需要載入的引導區。如果不是,bios就不認為他是需要的啟動區,因此,這塊區域的最後需要寫成0x55aa。
如果有錯,歡迎指出。
作業系統 作業系統介面
介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...
作業系統(作業系統引論)
方便性 方便使用者進行操作計算機 有效性提高系統資源的利用率 提高系統的吞吐量,加速程式的執行 可擴充性 方便地增添新的模組和功能,以及對原有的功能模組進行修改 開放性能夠遵循世界標準規範 os作為使用者和計算機硬體系統之間的介面 使用者能夠通過作業系統來使用計算機系統 os作為計算機資源的管理者 ...
作業系統 作業系統 一 作業系統概述
好好學習,天天向上本文已收錄至我的github倉庫daydayup 歡迎star 之前一直沒有系統地學過作業系統,感覺自己在平時的學習過程中對於某些概念理解得一塌糊塗,比如中斷 記憶體 程序和執行緒等。所以打算系統的學習一下作業系統。一開始我是在b站看哈工大的李治軍老師講的,但是一上來就開始從彙編 ...