可以引導的IMG檔案製作!

2021-05-25 18:09:20 字數 1553 閱讀 6633

最近在研究《自己動手寫作業系統》有了點進步想記錄並分享一下!

根據《自己動手寫作業系統》一書自己完成可以引導的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 把指導...