bochs helloworld程序

Posted kevinlights

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bochs helloworld程序相关的知识,希望对你有一定的参考价值。

centos6

bochs-2.6.2

 安装好bochs后,将bin目录配置到环境变量中。

 技术图片

 

 

技术图片

1、boot.img文件

 bximage 

创建fd软盘

1.44m

boot.img

 

2、boot.asm文件

  1. org 0x7c00
  2.  
  3. BaseOfStack equ 0x7c00
  4.  
  5. Label_Start:
  6.  
  7. mov ax, cs
  8. mov ds, ax
  9. mov es, ax
  10. mov ss, ax
  11. mov sp, BaseOfStack
  12.  
  13. ;======= clear screen
  14.  
  15. mov ax, 0600h
  16. mov bx, 0700h
  17. mov cx, 0
  18. mov dx, 0184fh
  19. int 10h
  20.  
  21. ;======= set focus
  22.  
  23. mov ax, 0200h
  24. mov bx, 0000h
  25. mov dx, 0000h
  26. int 10h
  27.  
  28. ;======= display on screen : Start Booting......
  29.  
  30. mov ax, 1301h
  31. mov bx, 000fh
  32. mov dx, 0000h
  33. mov cx, 10
  34. push ax
  35. mov ax, ds
  36. mov es, ax
  37. pop ax
  38. mov bp, StartBootMessage
  39. int 10h
  40.  
  41. ;======= reset floppy
  42.  
  43. xor ah, ah
  44. xor dl, dl
  45. int 13h
  46.  
  47. jmp $
  48.  
  49. StartBootMessage: db "Start Boot"
  50.  
  51. ;======= fill zero until whole sector
  52.  
  53. times 510 - (- $$) db 0
  54. dw 0xaa55
  55.  

 

3、boot.bin文件

  1. dd if=boot.bin of=boot.img bs=512 count=1 conv=notrunc

 

4、bin文件写入img

  1. dd if=boot.bin of=boot.img bs=512 count=1 conv=notrunc

 

5、bochsrc.txt文件

  1. floppya: 1_44="boot.img", status=inserted #Use FLoppy Disk A
  2.  
  3. boot: floppy
  4.  
  5. display_library: x
  6.  
  7. #display_library:sdl

 

6、指定文件启动虚拟机

  1. bochs -f bochsrc.txt

 技术图片

 

 

技术图片

默认启动6

 

7、命令行调试

命令行中输入 c,或者 continue,进行调试

技术图片

 技术图片

 

 

输入exit退出

 

8、图形化调试

修改启动配置文件bochsrc.txt如下

  1. floppya: 1_44="boot.img", status=inserted #Use FLoppy Disk A
  2. boot: floppy
  3. display_library: x, options="gui_debug"
  4. #display_library:sdl
  5.  

 运行

  1. bochs -f bochsrc.txt

 就启动了图形化的调试界面,可以点击不同的按钮来调试

技术图片

 

技术图片

以上是关于bochs helloworld程序的主要内容,如果未能解决你的问题,请参考以下文章

##node从HelloWorld开始

2018/11/29 一个64位操作系统的设计与实现 03 (在Bochs上运行Boot程序)

Bochs在 Bochs 中运行 Linux 0.1x 系统

从 HelloWorld 到 企业级web框架 | 手把手教你安装 beego

Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行

OpenMV快速上手 | OpenMV硬件版本概述及HelloWorld