首先得有一個asm
;boot1.asm
;2017.8.16
;nasm boot1.asm -o boot
bits 16
org 7c00h
start:
cli
; macro: FAST_A20_ENABLE
; description:
; set 0x92[1] to enable A20 line
in al,0x92 ; port 0x92
or al, 0x02 ; set A20 bit
out 0x92, al
sti
mov ax,cs
mov ds,ax
mov ss,ax
mov es,ax
mov sp,7c00h
dot:
push ax
push bx
mov ah, 0x0e
xor bh, bh
mov al,'a'
int 0x10
pop bx
pop ax
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
times 510-($-$$) db 0
dw 0xaa55
在命令行中
nasm boot1.asm -o boot
編譯後輸出爲boot
當然你得先安裝nasm
sudo apt-get install nasm
之後是寫入
首先得有一個空的img
bximage
執行後跟據提示完成製作
bximage
========================================================================
bximage
Disk Image Creation / Conversion / Resize and Commit Tool for Bochs
$Id: bximage.cc 13069 2017-02-12 16:51:52Z vruppert $
========================================================================
1. Create new floppy or hard disk image
2. Convert hard disk image to other format (mode)
3. Resize hard disk image
4. Commit 'undoable' redolog to base image
5. Disk image info
0. Quit
**Please choose one [0] 1**
Create image
**Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd] fd**
**Choose the size of floppy disk image to create.
Please type 160k, 180k, 320k, 360k, 720k, 1.2M, 1.44M, 1.68M, 1.72M, or 2.88M.
[1.44M]**
**What should be the name of the image?
[a.img]**
Creating floppy image 'a.img' with 2880 sectors
The following line should appear in your bochsrc:
floppya: image="a.img", status=inserted
加粗的部分爲需要輸入的。
下面就可以用dd寫入了
dd if=boot of=demo.img count=1
if輸入文件
of輸出文件
現在打開bochs,如果配置文件沒有錯的話,應該是這樣的
bochs
========================================================================
Bochs x86 Emulator 2.6.9
Built from SVN snapshot on April 9, 2017
Compiled on Aug 11 2017 at 18:38:30
========================================================================
00000000000i[ ] BXSHARE not set. using compile time default '/usr/local/share/bochs'
00000000000i[ ] reading configuration from .bochsrc
------------------------------
Bochs Configuration: Main Menu
------------------------------
This is the Bochs Configuration Interface, where you can describe the
machine that you want to simulate. Bochs has already searched for a
configuration file (typically called bochsrc.txt) and loaded it if it
could be found. When you are satisfied with the configuration, go
ahead and start the simulation.
You can also start bochs with the -q option to skip these menus.
1. Restore factory default configuration
2. Read options from...
3. Edit options
4. Save options to...
5. Restore the Bochs state from...
6. Begin simulation
7. Quit now
Please choose one: [6]
回車
Please choose one: [6]
00000000000i[ ] installing x module as the Bochs GUI
00000000000i[ ] using log file bochsout.txt
Next at t=0
(0) [0x0000fffffff0] f000:fff0 (unk. ctxt): jmpf 0xf000:e05b ; ea5be000f0
<bochs:1>
如果回車後有報錯,就需要按照提示折騰一下。