其實更準確的是山區引導程式
書上的**是
org 07c00h ; 告訴編譯器程式載入到7c00處
mov ax, cs
mov ds, ax
mov es, ax
call dispstr ; 呼叫顯示字串例程
jmp $ ; 無限迴圈
dispstr:
mov ax, bootmessage
mov bp, ax ; es:bp = 串位址
mov cx, 16 ; cx = 串長度
mov ax, 01301h ; ah = 13,
al = 01h
mov bx, 000ch ; 頁號為0(bh = 0) 黑底紅字(bl = 0ch,高亮)
mov dl, 0
int 10h ; 10h 號中斷
retbootmessage: db "hello, os world!"
times 510-($-$$) db 0 ; 填充剩下的空間,使生成的二進位制**恰好為512位元組
dw 0xaa55 ; 結束標誌
我們用nasm編譯器產生.bin檔案
nasm boot.asm -o boot.bin
在linux下,用dd命令將.bin檔案轉化為.img檔案(方便之後再虛擬機器啟動時,從虛擬軟盤啟動)
dd if=boot.bin of=boot.img bs=512 count=1
(在if後面寫輸入檔案,在of後面寫輸出檔案)
這樣就可以得到boot.bin檔案
然後我們建立乙個新的虛擬機器,選擇的作業系統都為其他
然後新增虛擬軟盤(floppy),在其中使用軟盤映像檔案
最後直接啟動該虛擬機器,就可以看到結果了
OS作業系統的啟動
ucore的啟動過程.ucore.img 映象檔案的生成 rom中的bios 軟體執行,完成加電自檢的工作後,跳轉到bootloader 程式.bootloader負責將os從硬碟載入到記憶體中,載入完成後,將cpu控制權移交給os,完成os的啟動.bootloader還完成了實模式和保護模式 32...
最簡單的加密
最簡單的加密 package com.util 類 介面的目的 作用 功能 繼承於何種父類,實現的介面 實現的演算法 使用方法 示例程式.version v1.0 2012 3 22 author xiahui public class encrypt system.out.print 加密 s n...
最簡單的makefile
hello.c的內容如下 include int main makefile 的內容如下 hello.exe hello.o gcc o hello.exe hello.o hello.o hello.c gcc c hello.c clean rm hello.o hello.exe window...