《30天自制操作系统》第二天
2013-06-01 21:49
190 查看
首先打开helloos3中的helloos.nas,直接用记事本打开会出现乱码,可以使用sublime text 2打开它(下载地址:http://www.sublimetext.com/2)然后用UTF-8来保存就可以转换成中文了,下面是代码:
然后真正写启动文件ipl.bin,把启动文件以外的东西去掉:
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-$
;times 0x7dfe-($-$$) db 0
times 510-($-$$) db 0
DB 0x55,0xaa
然后将引导扇区的文件导入软盘中,生成img软盘映像文件:
incbin "ipl.bin"
times 1474560 - ($ - $$) db 0
最后将img文件加载到虚拟机的虚拟软驱里启动就可以了
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 ;AH=0ex,AL=显示字符 MOV BX,15 ;BH=0,BL=颜色代码 INT 0x10 ;BIOS显示中断 JMP putloop fin: HLT ;停机指令 JMP fin ;死循环 msg: DB 0x0a, 0x0a DB "hello, world" DB 0x0a DB 0 ;RESB 0x7dfe-$ ;times 0x7dfe - ( $ - $$ ) DB 0 times 510-($-$$) DB 0 DB 0x55, 0xaa DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 RESB 4600 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 RESB 1469432
然后真正写启动文件ipl.bin,把启动文件以外的东西去掉:
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-$
;times 0x7dfe-($-$$) db 0
times 510-($-$$) db 0
DB 0x55,0xaa
然后将引导扇区的文件导入软盘中,生成img软盘映像文件:
incbin "ipl.bin"
times 1474560 - ($ - $$) db 0
最后将img文件加载到虚拟机的虚拟软驱里启动就可以了
相关文章推荐
- <30天自制操作系统>第二天
- 30天自制操作系统——第二天
- 30天自制操作系统——第二天
- 30天自制操作系统之第二天Makefile
- 30天自制操作系统第二天笔记 Makefile文件
- 30天自制操作系统第二天
- 《30天自制操作系统》学习笔记——第二天
- 读书笔记《30天自制操作系统》day07
- 关于U盘启动操作系统《30天自制操作系统》
- 30天自制操作系统day12
- 30天自制操作系统——前三天
- 30天自制操作系统day23
- <30天自制操作系统>第六天
- 30天自制操作系统笔记第4天
- 《30天自制操作系统》02_day_学习笔记
- 30天自制操作系统------图形处理相关
- 《30天自制操作系统》读书笔记(3) 引入C语言
- 30天自制操作系统 第0天 着手开发之前
- 《30天自制操作系统》读书笔记(6) 鼠标键盘
- 30天自制操作系统之第13天 定时器(2)