当前位置:网站首页>制作一个启动软盘并用bochs模拟器启动
制作一个启动软盘并用bochs模拟器启动
2022-08-10 05:36:00 【刘十彡】
1.bximage创建软盘。
选1
默认[1.44M]
起名boot.img
status=inserted表示已经插入该软盘
2.编译boot.asm汇编编写的引导程序。
使用nasm编译器进行编译。
-o 参数: nasm 文件名 -o 目标程序名
-o 和gcc一样表示输出文件。
编译命令:
nasm boot.asm -o boot.bin
3.使用dd命令把引导程序强制写入到虚拟软盘的固定扇区内。
dd if=boot.bin of=./boot.img bs=512 count=1 conv=notrunc
conv=notrunc: 写入数据后,不改变输出文件的尺寸大小。
4.配置bochs虚拟机配置文件。
# configuration file generated by Bochs
plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, parallel=1, serial=1, iodebug=1
config_interface: textconfig
display_library: x
#memory: host=2048, guest=2048
romimage: file="/home/hao/work_pro/bin_bochs/share/bochs/BIOS-bochs-latest"
vgaromimage: file="/home/hao/work_pro/bin_bochs/share/bochs/VGABIOS-lgpl-latest"
boot: floppy
floppy_bootsig_check: disabled=0
floppya: type=1_44, 1_44="boot.img", status=inserted, write_protected=0
# no floppyb
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=none
ata0-slave: type=none
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata1-master: type=none
ata1-slave: type=none
ata2: enabled=0
ata3: enabled=0
pci: enabled=1, chipset=i440fx
vga: extension=vbe, update_freq=5
cpu: count=1:1:1, ips=4000000, quantum=16, model=corei7_haswell_4770, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1, mwait_is_nop=0, msrs="msrs.def"
cpuid: x86_64=1,level=6, mmx=1, sep=1, simd=avx512, aes=1, movbe=1, xsave=1,apic=x2apic,sha=1,movbe=1,adx=1,xsaveopt=1,avx_f16c=1,avx_fma=1,bmi=bmi2,1g_pages=1,pcid=1,fsgsbase=1,smep=1,smap=1,mwait=1,vmx=1
cpuid: family=6, model=0x1a, stepping=5, vendor_string="GenuineIntel", brand_string="Intel(R) Core(TM) i7-4770 CPU (Haswell)"
print_timestamps: enabled=0
debugger_log: -
magic_break: enabled=0
port_e9_hack: enabled=0
private_colormap: enabled=0
clock: sync=none, time0=local, rtc_sync=0
# no cmosimage
# no loader
log: -
logprefix: %t%e%d
debug: action=ignore
info: action=report
error: action=report
panic: action=ask
keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none
mouse: type=ps2, enabled=0, toggle=ctrl+mbutton
speaker: enabled=1, mode=system
parport1: enabled=1, file=none
parport2: enabled=0
com1: enabled=1, mode=null
com2: enabled=0
com3: enabled=0
com4: enabled=0
megs: 2048
5.启动bochs。
bochs -f ./bochsrc
6.输入c进行继续执行。
边栏推荐
- 51单片机智能远程遥控温控PWM电风扇系统红外遥控温度速度定时关机
- 解析树字符串并输出中序遍历
- 以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例
- 浅谈游戏中3种常用阴影渲染技术(2):阴影锥
- 通过配置CubeMX的TIMER的PWM初始化实现硬件PWM呼吸灯闪烁
- 常用模块封装-csv文件操作封装
- 从零开始构建Google Protocol Buffer / protobuf 的helloworld工程(超级详细)
- STM32F407ZG GPIO输入相关实验
- STM32单片机手机APP蓝牙高亮RGB彩灯控制板任意颜色亮度调光
- 每日刷题(day01)——leetcode 53. 最大子数组和
猜你喜欢
随机推荐
Unity屏幕坐标转世界坐标,鼠标点击获取三维位置
在Unity的Update中通过物体自身位置判断运动方向
LruCache与DiskLruCache结合简单实现ImageLoader
抛光树脂应用
51单片机ST188手持人体温度脉搏心率测量仪锂电池充电
pytorch-05. Implementing linear regression with pytorch
内核性能分析总结
STM32F407ZG 串口通信+固定帧头帧尾传输数据帧
在TypeScript中使用parseInt()
51单片机RS485远程双机多机温度采集主从机多节点蜂鸣器报警
作为测试,常用的adb命令
二叉树 6/16 81-85
为什么游戏需要热更新
动态规划、背包问题 6/24 106-110
剑指 Offer(第 2 版)7/6 9-13
8个问题轻松掌握Unity前向渲染
Pico设备中的截图以及视频文件通过adb命令保存到电脑中
酸回收工艺讲解
Flutter Package 插件开发
Tensorflow 2.0 使用流程详解









