麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 編程設計 > 正文

nasm實現的用vmware運行自做的linux啟動盤的引導代碼

2020-02-02 19:01:12
字體:
來源:轉載
供稿:網友

當計算機電源被打開后,它會先進行加電自檢(POST),然后尋找啟動盤,如果是選擇從軟盤啟動,計算機就會查找軟盤的0面0磁道1扇區,如果發現它以0xAA55結束,則BIOS認為它是一個引導扇區,然后BIOS就會把引導扇區的前512字節的引導代碼拷貝到內存的0000:7c00處并將控制器徹底交給這段引導代碼。

簡單的引導代碼如下所示:

復制代碼 代碼如下:

org 07c00h ;告訴編譯器加載到07c00h處

mov ax, cs
mov ds, ax
mov es, ax

call DispStr ;調用顯示字符串函數

jmp $; 無限循環

DispStr:
mov ax, BootMessge
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessge: db "hello, OS world!"
times 510 - ($ - $$) db 0
dw 0aa55h


這段代碼時用nasm寫的,它類似于masm的語言。org 07c00h命令就是將命令后面的代碼中的偏移地址都加上07c00h,這樣程序就相當于在0000:7c00出執行了。按書中所講的,用命令nasm bootsector.asm -o boot.bin生成引導代碼boot.bin,然后將boot.bin寫入軟盤的0面0磁道1扇區就可以了。問題就來了,我沒有軟盤怎么搞,不過在wmware虛擬機中貌似可以用軟盤的映像文件來啟動,所以就想到自己制作一個映像文件來代替軟盤來作為啟動盤,不過怎么創建這個映像文件呢?

以前記得用linux下的dd命令做過linux的啟動盤,dd應該是可以制作的,于是在網上找了下dd制作映像文件,果然是可以的,制作方法如下:

1 先制作一個空的軟盤映像文件diska.img(1.44Mb的軟盤映像文件):

dd if=/dev/zero of=diska.img bs=512 count=2880

2 制作一個包含boot.bin的映像文件boot.img:

dd if=boot.bin of=boot.img bs=512 count=1

3 將diska.img中1個扇區后面的數據拷貝到boot.img的后面

dd if=diska.img of=boot.img skip=1 seek=1 bs=512 count=2879

這樣就做成了一個大小為1.44Mb的包含引導代碼的映像文件。

后面的事就好辦了,直接在wmware創建一個空的虛擬機,在設置中將Floppy的路徑設置為上面制作的引導扇區的路徑就ok了,如下圖那樣:

設置Floppy連接,斷開CD/DVD連接,啟動虛擬機就可以看到下面的畫面了:

 

總結:這個小的代碼的編寫和運行還是能讓自己對系統啟動有一個更深的認識,不過有個不懂的就是怎么用ISO鏡像文件啟動,怎么將引導代碼寫入ISO鏡像文件,依然沒有找到很好的方法解決。

上一篇:笛卡爾乘積介紹

下一篇:WCF配置心得

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 在线a亚洲视频播放在线观看 | 少妇的肉体2无删减版 | 九九热在线视频免费观看 | 国产色爱综合网 | 福利在线免费 | 亚洲精品久久久久久下一站 | 成人在线视频播放 | 人人看人人艹 | 国产成人精品免费视频大全办公室 | 91精品国产九九九久久久亚洲 | 欧美性生活久久久 | www.guochanav.com | 国产99视频精品免视看9 | 日日噜噜夜夜爽 | 午夜影院在线免费观看 | 国产精品探花在线观看 | 亚洲精品久久久久久久久久 | 久久精品欧美电影 | 伊久在线| 欧美五月婷婷 | 欧美性激情视频 | 久久久精品网 | 亚洲成人在线免费观看 | 特级毛片免费 | 污污的视频在线观看 | 久久超 | 99r国产精品 | 精品国产一区二区三区天美传媒 | 久久久成人免费视频 | 久久日本 | 欧美精品一二三区 | 国产污污视频 | 九九热精品视频在线 | 欧美一级美片在线观看免费 | 国产精品久久久久久久亚洲按摩 | 国产日韩精品欧美一区视频 | 久久精品亚洲一区二区三区观看模式 | 在线视频观看国产 | 日本欧美一区二区三区在线播 | 欧日韩 | 国产剧情v888av |