Linux下配置汇编编译器NASM和bochs模拟器
NASM下载:http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
解压:tar zxvf nasm-2.12.02.tar.gz
进入刚解压的目录
然后执行命令:./configure
make
sudo make install
bochs下载:https://sourceforge.net/projects/bochs/files/bochs/2.6.8/
解压:tar zxvf bochs-2.6.8.tar.gz
进入刚解压的目录
然后执行命令:./configure \
--prefix=/your_path/bochs \ 指定安装目录
--enable-debugger \
打开bochs自己的调试器
--enable-disasm
\ 使bochs支持反汇编
--enable-iodebug
\ 启用io接口调试器
--enable-x86-debugger
\ 支持x86调试器
--with-x
\ 使用x windows
--with-x11
\ 使用x11图形用户接口
make
sudo make install
如果想用GDB调试,将--enable-debugger改为--enable-gdb-stub
运行bochs:
安装路径中输入 bin/bochs
按回车载入配置文件 bochsrc.disk启动时直接载入: bin/bochs -f bochsrc.disk
创建虚拟硬盘工具:bin/bximage
NASM简单用法:
nasm -f 指定输出文件的格式
nasm -o指定输出可执行文件的名称
编译mbr:nasm -o mbr.bin mbr.S
Linux磁盘操作命令dd:
if=FILE 此项指定要读取的文件
of=FILE 此项指定把数据输出到哪个文件
bs=BYTES 此项指定块的大小 dd是以块的单位来进行IO操作的
count=BLOCKS 此项指定拷贝的块数
seek=BLOCKS 此项指定把块输出到文件时想要跳过多少块
conv=CONVS 此项指定如何转换文件 追加数据时使用notrunc方式
将mbr写入硬盘:
dd if=/your_path/mbr.bin of=/your_path/bochs/hd60M.img bs=512 count=1 conv=notrunc