最近在研究《自己動手寫作業系統》有了點進步想記錄並分享一下!
根據《自己動手寫作業系統》一書自己完成可以引導的img軟盤映像!
工具:nasm彙編編譯器,virtual pc 2007,floppywriter;
需要知識: nasm彙編
編寫boot.asm:
org 07c00h ;程式載入到7c00h處
mov ax , cs
mov ds , ax
mov es , ax ;將**段位址付給 ds es
call dispstr ;呼叫顯示字串例程
jmp $
dispstr:
mov ax , bootmessage
mov bp , ax ;es:bp指向字串位址
mov ax , 01301h ; ah=13 , al = 01h ah表示呼叫13號功能 al表示游標
mov bx , 000ch ;bh表示0頁 bl表示字型顏色
mov dl , 0 ;dh dl 表示行列
int 10h
retbootmessage: db "hello,os world!"
times 510 - ($-$$) db 0
dw 0xaa55
編譯方式: nasm boot.asm -o boot.bin
生成boot.bin檔案,再用floppywriter生成img映象檔案
再用esayboot將boot.img大小改為1440kb(virtual pc 2007 要求軟盤映像為720kb活著1.44mb)
關於bios的10號中斷:
int 10h 是由 bios 對螢幕及顯示器所提供的服務程式,而後倚天公司針對倚天中文提供了許多服務程式,這些服務程式也加掛在 int 10h 內。使用 int 10h 中斷服務程式時,先指定 ah 暫存器為呼叫功能號,在本例中用到了13號功能具體入口引數:
es:bp = 串位址
cx = 串長度
dh , dl 為其實行,列
bh = 頁號
al = 0,bl = 屬性
串:char,char,……,char
al = 1,bl = 屬性
串:char,char,……,char
al = 2
串:char,attr,……,char,attr
al = 3
串:char,attr,……,char,attr
android的各種 img 檔案
對android的各種disk images很好奇,一直想知道怎麼去know和hack這些images,所以就有了這篇 用file來檢視檔案型別 ramdisk.img data data檔案共有這麼幾個,kernel qemu,local.img和userdata qemu.img。什麼是data...
嵌入式檔案系統韌體img製作與解包
一 檔案系統韌體img解包步驟 1 把img檔案命名為gz打包檔案 cp rootfs.img rootfs.img.gz 2 重新再用gunzip工具解壓縮rootfs.img.gz檔案為新的rootfs.img gunzip rootfs.img.gz 3 生成乙個新的解包資料夾rootfs,用...
簡潔易用的iOS引導頁製作
基本上每個app都有引導頁,雖然現在這種demo已經比比皆是,但感覺都不全,所以自己整理了乙個,只需要傳入,就可以正常載入出來。由於uipagecontrol的小圓點大小和顏色經常與ui設計的不相符,所以後面也會提到重寫類方法,進行修改。先看下效果 是在網上隨便找的 untitled.gif 把指導...