- 工作環境
- Lubuntu 17.04
- VMware Workstation 12.5.2
- 參考資料
- Linux 版本筆記:http://lengly.top/archives/85
20170714 - Day_1
- 進度摘要
- 使用 nasm 編譯映像檔,使用虛擬機模擬。
- 完整專案
- 參考資料
一、安裝 nasm
,編譯映像檔
1. 在終端上輸入以下指令,安裝 nasm
sudo apt install nasm
2. 用 vim 檢視 helloos.nas
的內容
DB 0xeb, 0x4e, 0x90, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x49, 0x50, 0x4c, 0x00, 0x02, 0x01, 0x01, 0x00
DB 0x02, 0xe0, 0x00, 0x40, 0x0b, 0xf0, 0x09, 0x00
DB 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x40, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff
DB 0xff, 0xff, 0xff, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x2d, 0x4f, 0x53, 0x20, 0x20, 0x20, 0x46, 0x41
DB 0x54, 0x31, 0x32, 0x20, 0x20, 0x20, 0x00, 0x00
RESB 16
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd, 0x0a, 0x0a, 0x68, 0x65
DB 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72
DB 0x6c, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 368
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xaa
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432
好吧,我發現自己看不懂…得找找相關的組合語言書籍。
3. 將 helloos.nas
編譯成映像檔 helloos.img
nasm -o helloos.img helloos.nas
二、新增虛擬機、載入映像檔
1. 環境配置 » 記憶體:256MB、硬碟:8GB
2. 設定虛擬機欲讀取的映像檔位置
- 在書本範例上是使用 “軟碟機” 讀取映像檔
helloos.img
。
3. 啟動虛擬機
- 可以看到螢幕上顯示
hello, world
後畫面停滯不動,觀察完後便可將虛擬機關機。
三、改變螢幕上面的字
1. 用 vim 修改 helloos.img
映像檔
- 將內文中的
hello, world
改成Hello, shouzo. Be Strong to Be Useful.
。
- 編輯完成後,將映像檔另存成
hello_shouzo.img
。
2. 設定新的映像檔讀取位置後,啟動虛擬機
- 本次將欲讀取的映像檔改成
hello_shouzo.img
。