win7 下 bochs 运行 Hello World OS
2015-12-05 18:56
302 查看
安装 bochs,dd for windows(dd for windows 是 Linux 下 dd 命令的
Windows ,可以做磁盘的块传输,例如将映像文件写入到磁盘或者U盘中。),nasm,并将安装目录加入到环境变量中。
用 bochs 中 bximage.exe 创建新的 img 文件
编写 Hello.asm(直接拷贝)
在 cmd 下输入 nasm Hello.asm -o Hello.bin,生成 Hello.bin。
将 Hello.bin 和 Hello.img 放在一个目录下,在 cmd 中使用指令dd if=Hello.bin of=Hello.img bs=512 count=1
配置 bochsrc.txt(没有的话,新建一个),输入
最后输入 bochs -q -f bochsrc.txt
Windows ,可以做磁盘的块传输,例如将映像文件写入到磁盘或者U盘中。),nasm,并将安装目录加入到环境变量中。
用 bochs 中 bximage.exe 创建新的 img 文件
编写 Hello.asm(直接拷贝)
org 07c00h ; 告诉编译器程序加载到 7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符串例程 jmp $ ; 无限循环 DispStr: mov ax, BootMessage mov bp, ax ; es:bp = 串地址 mov cx, 16 ; cx = 串长度 mov ax, 01301h ; ah = 13, al = 01h mov bx, 000ch ; 页号为 0(bh = 0) 黑底红字(bl = 0Ch,高亮) mov dl, 0 int 10h ; 10h 号中断 ret BootMessage: db "Hello, OS world!" times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为 dw 0xaa55 ; 结束标志
在 cmd 下输入 nasm Hello.asm -o Hello.bin,生成 Hello.bin。
将 Hello.bin 和 Hello.img 放在一个目录下,在 cmd 中使用指令dd if=Hello.bin of=Hello.img bs=512 count=1
配置 bochsrc.txt(没有的话,新建一个),输入
#how much memory the emulated machine will have megs:4 #filename of ROM images romimage:file=BIOS-bochs-latest,address=Oxf0000 vgaromimage:file=VGABIOS-elpin-2.40 #what disk images will be used floppya:1_44=Hello.img,status=inserted #Choose the boot disk boot:a #where do we send log messages? log:bochsout.txt
最后输入 bochs -q -f bochsrc.txt
相关文章推荐
- 【风马一族_Android】第4章Android常用基本控件
- 人人都能开发物联网(三.究竟想玩些什么呢?)
- Stanford UFLDL教程 可视化自编码器训练结果
- CSS中margin和padding的区别
- 计算两条直线之间的距离
- nginx安装配置+清缓存模块安装
- Stanford UFLDL教程 自编码算法与稀疏性
- C++ STL
- 再谈继承
- Stanford UFLDL教程 梯度检验与高级优化
- nginx 编译参数详解(运维不得不看)
- Linux下JDK.Eclipse.Tomcat安装
- Windows系统配置Java Web开发环境Step by Step
- java中的集合框架
- nginx安装(1) – ttlsa教程系列之nginx
- codeforces 377B Preparing for the Contest 二分+优先队列
- busybox 显示用户名及路径 -----[\u@\h\W]\# busybox 在制作根文件系统的处理方法
- PIC32MZ tutorial -- Blinky LED
- GPU 加速NLP任务(Theano+CUDA)
- 珍惜别人的幸福