一个操作系统的实现01
老师说,写好操作系统,期末就没有大作业了
没有大作业=期末空闲时间更多=我可以看每到期末就看的停不下来的电视剧
欢迎大家来和我一起来学操作系统制作
参考书籍:
一个操作系统的实现 于渊
参考博客:https://blog.csdn.net/zhouzhoujianquan/article/details/22744271#commentBox
先把接下来需要的软件发出来
1 vmware 因为没有软盘所以用这个代替
2 nasm 编译文件
3 uedit 这个只是为了编写方便
4 FloppyWriter 制作Img
5 光盘代码
链接:https://pan.baidu.com/s/1faCyJrVTEuXoktjc2O-Wxg
提取码:njcs
1 囫囵吞枣的写代码
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,novelWorld!"
times 510-($-$$) db 0 ;填充剩下的空间,使生成的二进制代码恰好为512字节
dw 0xaa55 ;结束标志
2 将代码保存为boot.asm并编译
3 将boot.bin写入a.img
点击Write File to Image,将boot.bin导入,然后选择随书光盘内的a.img,将boot.bin导入a.img
4 在vmware上引入a.img(参考)
1)点击创建新的虚拟机,选择典型类型
2)选择稍后安装系统
3)两个都选其他
4)填写虚拟机名字及位置
5)将磁盘存储为单个文件(然后一直点到完成即可)
6)点击编辑虚拟机设置
7)点击添加(需要授予管理员权限),选软盘驱动器
8)使用物理软盘驱动器
9)
10)点击使用软盘映像文件 浏览,加入 之前的a.img
一个操作系统的实现01相关推荐
- 《Orange’s 一个操作系统的实现》3.保护模式3----DOS加载.EXE过程
在<<Orange's 一个操作系统的实现>>一书中有时使用了org 0100h,为何是0100h?因为书中的例子是为了突破引导扇区512字节的限制, 而将asm文件编译为.c ...
- 《Orange’s 一个操作系统的实现》3.保护模式7-特权级转移(通过调用门转移目标段-无特权级转换)...
在上次的代码基础上,添加一个代码段作为通过调用门转移的目标段.了解一下调用的工作方法,代码分析如下: <<红色标识部分为新增代码>> ; =================== ...
- 《一个操作系统的实现》读书笔记连载ing……
从昨天起深陷<一个操作系统的实现>这个书不能自拔,这本书可以说再次燃起了我小时候想写操作系统的美好愿望,所以说愿望总是美好的,还进入了大学开始真正去学计算机才发现似乎写操作系统是和我没什么 ...
- 一个操作系统的实现(1)
一个操作系统的实现 说明:本文是一个简单的学习记录,不是全面给大家提供学习的文章,文章内容均代表作者的个人观点,难免会有错误.转载请保留作者信息. 2010/11/20 ...
- orange's系统可以装mysql 吗?_bochs 2.4.2 ubuntu 安装运行问题《orange#39;s 一个操作系统的...
用源码安装完后会遇到的问题: <1> 运行可能碰到如下问题: Event type: PANIC Device: [ ] Message: dlopen failed for module ...
- Orange's:一个操作系统的实现 Descriptor 3宏详解
补充:关于GDT/LDT.段选择子和段描述符的解释 GDT/LDT:GDT/LDT是段描述符表,里面定义了每个段的段描述符的界限和属性,而段描述符的基址是在代码段中初始化的. ...
- Orange‘s’ 一个操作系统的实现
突然想要随时记录一下实验过程中的各种问题,因此有了此文档: 由于是中途开始的,所以就偷懒直接跳过了vm.ubuntu32位16.04.bochs2.6.8.nasm的安装,下面开始正文内容: 2022 ...
- <一个操作系统的实现>:sudo mount -o loop pm.img /mnt/floppy出错
在<一个操作系统的实现>中使用命令sudo mount -o loop pm.img /mnt/floppy出现如下错误: mount: /mnt/floppy: wrong fs typ ...
- 给定一个二维 0-1 矩阵,其中 1 表示陆地,0 表示海洋,每个位置与上下左右相连。已知矩阵中有且只有两个岛屿,求最少要填海造陆多少个位置才可以将两个岛屿相连。
给定一个二维 0-1 矩阵,其中 1 表示陆地,0 表示海洋,每个位置与上下左右相连.已知矩阵中有且只有两个岛屿,求最少要填海造陆多少个位置才可以将两个岛屿相连. 输入是一个二维整数数组,输出是一个非 ...
最新文章
- Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误
- Android自定义水波纹动画Layout
- spark-1.5.2集群安装
- 运维基础(3)备份篇
- 重温c语言之环境变量
- IDE设置jdk和maven
- 如何将windows10的显示字体调大
- Log4j 2.x XSD的描述不完整
- 55 MM配置-评估和科目设置-定义账户分类参考
- Matlab线性/非线性规划优化算法(2)
- 文件的上传、文件的下载、I18N国际化
- plsql 无法解析指定的连接标识符_TNS03505:无法解析名称
- 再谈js对象数据结构底层实现原理-object array map set
- QT禁用“最大化按钮“和“禁止调节窗口大小“
- colspan会影响内部单元格宽度失效_冷轧轧辊失效原因分析及改进措施
- 深圳小库科技招聘高级前端
- TBSchedule原理与实践
- Android Studio 自带 模拟器无声音 解决方法
- idea下的新建的index.jsp访问不到404
- 如果我们遇上得州寒潮,会不会「悲剧」?
热门文章
- 软件测试完后,还有bug,责任全在于测试吗?
- ETC因背胶问题脱落,如何重新激活?
- python入门——P39类和对象:拾遗
- QApplication
- 在Azure Data StudioSQL笔记本中使用Python脚本加密密码
- jsp+servlet+mysql简单实现用户登陆注册
- docker for windows无法共享硬盘
- print('{:15}|{:^9}|{:^9}'.format('', 'lat.', 'long.'))是什么意思?
- Java-杂项:Java数组Array和集合List、Set、Map
- AttributeError: module 'pip' has no attribute 'main'