30天自制操作系统第2天helloos4

30 天自制操作系统

第 2 天 汇编语言学习与Makefile入门

helloos4

准备工作
开始实验
  1. 新建文件夹
    在 tolset 文件夹内新建子文件夹helloos4。
  2. !cons_nt.bat
    打开记事本文档并在其中输入以下代码,并另存为!cons_nt.bat文件,放在helloos4中:
cmd.exe
  1. ipl.nas
    打开vc code,新建文件,输入以下代码并保存为ipl.nas文件,放在helloos4中:
; hello-os
; TAB = 4

		ORG		0x7c00				; 指明程序的装载地址

; 以下的记述用于标准FAT12格式的软盘

		JMP		entry
		DB		0x90
		DB		"HELLOIPL"			; 启动区的名称可是任意的字符串
		DW		512					; 每个扇区(sector)的大小(必须为512字节)
		DB		1					; 簇(cluster)的大小(必须为1个扇区)
		DW		1					; FAT12的起始位置(一般从第一个扇区开始)
		DB		2					; FAT的个数(必须为2)
		DW		224					; 根目录的大小(一般设成224项)
		DW		2880				; 该磁盘的大小(必须是2880扇区)
		DB		0xf0				; 磁盘的种类(必须是0xf0)
		DW		9					; FAT的长度(必须是9扇区)
		DW		18					; 一个磁道(track)有几个扇区(必须是18)
		DW		2					; 磁头数(必须是2)
		DD		0					; 不使用分区,必须是0
		DD		2880				; 重写一次磁盘大小
		DB		0,0,0x29			; 意义不明固定
		DD		0xffffffff			; (可能是)卷标号码
		DB		"HELLO-OS   "		; 磁盘的名称(11字节)
		DB		"FAT12   "			; 磁盘格式名称
		RESB	18					; 先空出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				; 给SI加1
		CMP		AL,0
		JE		fin
		MOV		AH,0x0e				; 显示一个文字
		MOV		BX,15				; 指定字符颜色
		INT		0x10				; 调用显卡BIOS
		JMP		putloop
fin:
		HLT							; 让CPU停止,等待指令
		JMP		fin					; 无限循环
msg:
		DB		0x0a, 0x0a			; 换行两次
		DB		"hello, world"
		DB		0x0a
		DB		0
		RESB	0x7dfe-$
		DB		0x55, 0xaa
  1. asm.bat
    打开记事本文档,输入以下代码并保存为asm.bat文件,存放在helloos4中:
..\z_tools\nask.exe ipl.nas ipl.bin ipl.lst
  1. makeimg.bat
..\z_tools\edimg.exe   imgin:../z_tools/fdimg0at.tek   wbinimg src:ipl.bin len:512 from:0 to:0   imgout:helloos.img
  1. run.bat
copy helloos.img ..\z_tools\qemu\fdimage0.bin
..\z_tools\make.exe -C ../z_tools/qemu

好的到这里,代码的编辑工作就完成了,接下来是编译及运行了

编译
  1. 打开!cons.nt.bat,出现命令行界面
    在这里插入图片描述
  2. 在命令行中输入asm, 并回车;

在这里插入图片描述
3. 接着输入makeimg 制作img系统镜像
在这里插入图片描述
最后在虚拟机中运行,输入run回车
在这里插入图片描述
PS:在vmware 中运行
在这里插入图片描述
以上,就是helloos4的内容了,好的,到这里就结束了,请大家多多支持!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值