小日本的那个30天自制操作系统从优盘启动的问题

老子横刀向天笑 2014-11-27 02:49:14
最近在学习操作系统方面的东西,但手头的代码(小日本的那个30天自制操作系统)是从软盘启动的,我在网上搜了很多相关资料,发现http://blog.csdn.net/hutao1101175783/article/details/41443727这篇教程,这篇教程的原作者已经成功从优盘启动过拉。从优盘启动的关键是要获取优盘的chs,而我们都知道“ int 0x13 /ah=0x08”可以获取优盘的chs,而作者他说他写了代码从优盘启动并将优盘的chs显示在了屏幕上,还截图为证,我就奇怪了,没有U盘的chs,优盘的启动区都没写,他是如何从优盘启动又如何获取U盘chs的,这不是子项矛盾吗?

下面是一段从软盘启动的代码:

; hello-os
; TAB=4

ORG 0x7c00



JMP entry
DB 0x90
DB "HELLOIPL"
DW 512
DB 1
DW 1
DB 2
DW 224
DW 2880
DB 0xf0
DW 9
DW 18
DW 2
DD 0
DD 2880
DB 0,0,0x29
DD 0xffffffff
DB "HELLO-OS "
DB "FAT12 "
RESB 18



entry:
MOV AX,0
MOV SS,AX
MOV SP,0x7c00
MOV DS,AX
MOV ES,AX

MOV SI,msg
putloop:
MOV AL,[SI]
ADD SI,1
CMP AL,0
JE fin
MOV AH,0x0e
MOV BX,15
INT 0x10
JMP putloop
fin:
HLT
JMP fin

msg:
DB 0x0a, 0x0a
DB "hello, world"
DB 0x0a
DB 0

RESB 0x7dfe-$ ; 启动区的结束地址-当前地址

DB 0x55, 0xaa


大家帮我分析分析!

谁有这方面的经验,或者有这方面的源码,感激不尽!


...全文
254 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzyd_ 2014-11-27
  • 打赏
  • 举报
回复
dd if=... of=... 不记得了 http://blog.csdn.net/adaptiver/article/details/6672592
  • 打赏
  • 举报
回复
引用 1 楼 Hacker_amos 的回复:
之前我也看过那书,起先是用虚拟机启动的,后来也写到u盘去过,我记得不需要改书上的代码,直接用dd指令就可以了
如何用dd指令
  • 打赏
  • 举报
回复
引用 1 楼 Hacker_amos 的回复:
之前我也看过那书,起先是用虚拟机启动的,后来也写到u盘去过,我记得不需要改书上的代码,直接用dd指令就可以了
hzyd_ 2014-11-27
  • 打赏
  • 举报
回复
之前我也看过那书,起先是用虚拟机启动的,后来也写到u盘去过,我记得不需要改书上的代码,直接用dd指令就可以了

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧