HelloWorld启动软盘

实验目的

    写一个可以引导无系统电脑显示“Hello World”的程序

    参考了http://blog.csdn.net/wangneng/archive/2007/12/16/1942350.aspx部分内容、《自己动手写操作系统》

实验过程

1.      首先准备如下工具:FloppyWriter.exe(由《自己动手写操作系统》作者开发用于写映像文件、代替UltraEdit-32 17.00.0 .1025 官方简体中文版.zip在本文中作用)、Bochs 2.4.6 .zip(用于生成空白映像)、nasm-2.09.08-installer.exe(用于编译asm汇编程序)、Visual PC(虚拟机可由其他替代)、文本编辑工具(能写asm就可) 

2.  全部安装好后,用文本写一个asm汇编文件:

Code:
  1.     org 07c00h ; 告诉编译器程序加载到 7c00处   
  2.     mov ax, cs   
  3.     mov es, ax   
  4.     call DispStr ; 调用显示字符串例程   
  5.     jmp $ ; 无限循环   
  6. DispStr:   
  7.     mov ax, BootMessage  
  8.     mov bp, ax ; es:bp = 串地址  
  9.     mov cx, 16 ; cx = 串长度   
  10.     mov ax, 01301h ; ah = 13, al = 01h   
  11.     mov bx, 000ch ; 页号为 0(bh = 0) 黑底红字(bl = 0Ch,高亮)   
  12.     mov dl, 0   
  13.     int 10h ; 10h 号中断   
  14.     ret   
  15. BootMessage: db "Hello, OS world!"   
  16.   
  17.     times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为   
  18.                         ; 512字节   
  19.     dw 0xaa55 ; 结束标志  

 

1.      使用nasm编译文件为bin二进制文件

2.      使用Bochs创建一个空白的img软驱空间(软驱文件,可由虚拟机加载)

3.      使用FloppyWriterbin文件写进img软驱空间

4.      Visual PC创建一个空白电脑,加载软驱img然后启动,见到“HelloWorld

 

实验结果

    引导文件放到引导区(头512个字节)中,写引导区可以引导加载其他东西。

 

你可能感兴趣的:(c,虚拟机,汇编,工具,编译器,文本编辑)