安装配置bochs之前先写一个简单的引导扇区用来测试:

org 07c00h
mov ax,cs
mov ds,ax
mov es,ax
call DispStr
jmp $ DispStr:
mov ax,BootMessage
mov bp,ax
mov cx,16 ;串长度
mov ax,01301h
mov bx,000ch ;颜色
mov dl,0
int 10h ;10号中断
ret BootMessage:
db "Hello, os world!"
times 510-($-$$) db 0 ;填充剩下的空间,使生成的二进制代码为512字节
dw 0xaa55

这段代码会输出Hello, os world!,保存为boot.asm

接着:

  1. 安装bochs及相关软件

    sudo apt-get install vgabios bochs bochs-x bximage nasm
  2. 编译boot.asm

    nasm boot.asm -o boot.bin
  3. 使用bximage生成磁盘映像

  4. 将引导扇区写进映像

    dd if =boot.bin of=a.img bs=512 count=1 conv=notrunc
  5. 写.bochsrc配置文件
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
# BIOS已经修改,地址可以不加,可以根据文件大小进行推断,如里加地址要与文件大小相匹配
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
# what disk images will be used
# 配置镜像名
floppya: 1_44=a.img, status=inserted
# choose the boot disk.
boot: floppy
# where do we send log messages?
log: bochsout.txt
# disable the mouse, since Finix is text only
mouse: enabled=0
# enable key mapping, using US layout as default.
# 键盘的映射方式也改变了
keyboard: keymap=$BXSHARE/keymaps/x11-pc-us.map
  1. 启动bochs

    bochs

    接着输入c

最新文章

  1. JSON数据源提供多值参数的实现
  2. Product Backlog
  3. Java中FileOutputStream和FileInputStream使用例子
  4. APIO2015
  5. DB天气app冲刺二阶段第四天
  6. Java错误提示is not an enclosing class
  7. 为PO手写添加配置文件(hbm.xml)
  8. 机器学习:R语言中如何使用最小二乘法
  9. javascript基础-HTML5
  10. hdu_1025(LIS Nlog(N)算法)
  11. java常用集合总结
  12. selenium多窗口切换定位
  13. 微信小程序性能优化技巧
  14. Flask 框架
  15. YUM仓库安装LAMP与LNMP
  16. 专业语音芯片MT8516 华为AM08蓝牙音箱
  17. javascrip学习之 数据类型和变量
  18. 【ELK】【docker】6.Elasticsearch 集群启动多节点 + 解决ES节点集群状态为yellow
  19. eclipse生成jar包 注意事项!
  20. 【洛谷P2515【HAOI2010】】软件安装

热门文章

  1. Windows2008 R2 X64 PHP环境搭建步骤
  2. 无法生成core dump文件的几个原因
  3. Java小问题
  4. 【java8】使用lambda表达式对List去重
  5. CentOS7.4下部署hadoop3.1.1
  6. C# 6.0:在catch和finally中使用await
  7. 廖雪峰Java8JUnit单元测试-1JUnit简介-1JUnit测试
  8. SAS-决策树模型
  9. WordPress版微信小程序3.1.5版的新功能
  10. Layout-3相关代码:3列布局代码演化[二]