bochs模拟器创建映像文件 、写入文件并启动
安装 bochs,dd for windows,nasm,并将安装目录加入到环境变量中。
我用的bochs版本是2.6.8
1.用 bochs 中 bximage.exe 创建新的 img 文件

2.编写汇编代码并编译成二进制文件
test.asm汇编文本文件
org 0x7C00 ;主引导记录的内存地址
jmp entry
entry:
mov ax, 0
mov ss, ax
mov ds, ax
mov es, ax
mov si, msg ;将msg地址赋给si
putLoop:
mov al, [si] ;等同 mov al, byte [si] 将si地址开始的一个字节的值放入al中
add si, 1 ;si = si+1
cmp al, 0 ;al与0比较
je fin ;如上面比较相等 则跳转到fin 不相等则不跳转,执行后面命令
mov ah, 0x0e
int 0x10
jmp putLoop
fin:
HLT ;暂停
jmp fin
msg:
DB 0x0a, 0x0a
DB "create,jadeshu OS!"
;DB 0
times 510-($-$$) db 0;填充510字节的0,$$表示编译后的起始地址
dw 0xaa55 ;表示结束,加上前面的510字节正好512字节满足条件
用cmd 命令输入nasm test.asm -o test.bin 编译成二进制文件
3.将test.bin文件写入如上面第1点讲解创建的映像文件a.img内
在 cmd 中使用指令dd if=test.bin of=a.img bs=512 count=1 将test.bin写入 a.img映射文件内
如果没有dd命令,在windows下可以安装cygwin,又简单又方便使用linux命令!
4.新建一个文件bosh.src,文件名你自己可以随便命令,如下是配置文件
megs:32
romimage:file=$BXSHARE/BIOS-bochs-latest
vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
floppya:1_44=a.img,status=inserted
boot:floppy
log:bochsout.txt
mouse:enabled=0
keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map
5.启动
在命令指示符中键入 .\bochs.exe -f bosh.src

点击start按钮即可运行!

bochs模拟器创建映像文件 、写入文件并启动的更多相关文章
- 文件写入文件分布式系统(asp.net C#)
) { try { System.Drawing.Image img = System.Drawing.Image.FromStream(fileData.InputStream); &&am ...
- (4)打造简单OS-loader硬盘加载和C++写入文件
0.简要说明: 我们完全可以使用bochs创建映像文件,如https://blog.csdn.net/jadeshu/article/details/89046838 ,那么为什么还去用C++去模 ...
- 【PHP】文件写入和读取详解
文章提纲: 一.实现文件读取和写入的基本思路 二.使用fopen方法打开文件 三.文件读取和文件写入操作 四.使用fclose方法关闭文件 五.文件指针的移动 六.Windows和UNIX下的回车和换 ...
- PHP 文件写入和读取(必看篇)
文章提纲: 一.实现文件读取和写入的基本思路 二.使用fopen方法打开文件 三.文件读取和文件写入操作 四.使用fclose方法关闭文件 五.文件指针的移动 六.Windows和UNIX下的回车和换 ...
- Python统计字符出现次数(Counter包)以及txt文件写入
# -*- coding: utf-8 -*- #spyder (python 3.7) 1. 统计字符(可以在jieba分词之后使用) from collections import Counter ...
- 安卓模拟器创建和使用SD卡的方法
安卓模拟器创建和使用SD卡的方法: 创建一个SD卡镜像文件 打开cmd,进入Android SDK安装路径下的tools目录下,输入如下命令:mksdcard 1024M sdcard.img 该命令 ...
- C语言程序读写文件(文件内存一个十进制数,每读一次数值加一)
1.问题:C语言程序实现读写一个txt文件,txt文件中存储一个十进制数.每读一次该数值加一. 2.实现:新建一个文件夹,在该文件夹中建一个outputFileName.txt文件.内容是:1,再在该 ...
- 定时自动同步文件,支持多文件夹同步,支持过滤文件和文件夹,解决FileSystemWatcher多次文件触发事件(源码)
博客园里面有很多同步工具和软件,关于FileSystemWatcher类解释的也很多,但收集了很多文章后,感觉没好的方法,自己没事写了一个定时文件同步,借鉴了很多博客园朋友的东西: 上主菜: 配置文件 ...
- Java 创建文件夹和文件,字符串写入文件,读取文件
两个函数如下: TextToFile(..)函数:将字符串写入给定文本文件: createDir(..)函数:创建一个文件夹,有判别是否存在的功能. public void TextToFile(fi ...
随机推荐
- (三)ajax请求不同源之cors跨域
一.基本原理 CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)它允许浏览器向跨源服务器,发出 XMLHttpReque ...
- 搭建自己的Webpack项目
五,搭建自己的Webpack项目 https://www.jianshu.com/p/42e11515c10f
- Ajax_简介: 异步的 JS 和 XML_原生写 ajax 分析其原理_jquery_ajax_art-template
AJAX Asynchronous JavaScript And XML 通过 AJAX 可以在 浏览器中向 服务器 发送异步请求 一种 使用现有标准的 新方法,而非新语言 XML 可扩展标记语言 ...
- requestAnimationFrame移动端实现回到顶部效果
$('#backToTop').click(function(){ var dist = $(document).height() - $(window).height(); timer = requ ...
- Python 学习笔记4 变量-字符串
Python中的字符串,我们可以简单的认为是一组用单引号,双引号,三引号包含的一组字符,数字或者特殊字符.在Python3中,所有的字符串都是Unicode字符串. 变量定义 #单引号 string1 ...
- 抓包分析、多线程爬虫及xpath学习
1.抓包分析 1.1 Fiddler安装及基本操作 由于很多网站采用的是HTTPS协议,而fiddler默认不支持HTTPS,先通过设置使fiddler能抓取HTTPS网站,过程可参考(https:/ ...
- ps去掉图片上的文字
使用仿制图章工具去除文字这是比较常用的方法,具体的操作是,选取仿制图章工具,按住Alt键,在无文字区域点击相似的色彩名图案采样,然后在文字区域拖动鼠标复制以覆盖文字.要注意的是,采样点即为复制的起始点 ...
- MySQL中dblink的实现(通过federated引擎实现)
最近项目中涉及MySQL数据库视图的创建,需要整合两个位于不同服务器上数据库的内容,就遇到了远程访问数据库的问题.在oracle中可以通过dblink来实现跨本地数据库来访问另外一个数据库中的数据.通 ...
- pandas(一)
import numpy as py import pandas as pd Series对象 data= pd.Series([0.25,0.5,0.75,1.0]) 默认索引是数字 data= ...
- maven插件--assembly
之前maven项目中使用assembly插件单独打包项目依赖包,项目只有一个模块也就一个pom,配置这个插件,一切很顺利.但是现在的项目复杂了,有parent有child,多模块.按照之前的做法怎么也 ...