2. Hello,DragonOS

Posted Alone0710

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2. Hello,DragonOS相关的知识,希望对你有一定的参考价值。

1. DragonOS

准备把这个OS的名字称呼为DragonOS

2. 主引导程序

在这里插入图片描述
对比:
在这里插入图片描述

3. 编写主引导程序

  1. 汇编语言
  2. 可独立运行于X86架构的主机(无操作系统)
  3. 运行后在屏幕打印“Hello,DTOS!”

3.1 汇编小贴士1

  1. mov : 赋值操作,将右操作数赋值给左操作数
    mov ax , 0;//将0赋值给ax寄存器
  2. int : 触发中断
    int 0x10;//触发0x10中断,对屏幕进行操作
  3. hlt :停止运行,CPU进入暂停状态,不执行任何操作
    hlt ; //使程序进入睡眠状态

3.2 汇编小贴士2

在这里插入图片描述
byte:只占一个字节的意思,将0x07放在0xb800+0x01这个地址的地方
在这里插入图片描述
C语言中的标签:goto
在这里插入图片描述

3.3 屏幕打印

在这里插入图片描述
当前参数的指定需要参考相关手册

3.4 汇编代码

org 0x7c00

start:
    mov ax, cs
	mov ss, ax
	mov ds, ax
	mov es, ax
	
	mov si, msg
	
print:
    mov al, [si]
	add si, 1
	cmp al, 0x00
	je last
	mov ah, 0x0e
	mov bx, 0x0f
	int 0x10
	jmp print
	
last:
    hlt
	jmp last
	
msg:
    db 0x0a, 0x0a
	db "Hello, DragonOS!"
	db 0x0a, 0x0a
	times 510-($-$$) db 0x00
	db 0x55, 0xaa

在这里插入图片描述
注:重开个虚拟机,把生成的.img放进软驱

以上是关于2. Hello,DragonOS的主要内容,如果未能解决你的问题,请参考以下文章

sublime text3 添加新片段

sublime text3 增加代码片段(snipper)

sublime代码片段

如何从URL获取片段标识符(hash#之后的值)?

[linux][c/c++]代码片段02

指针练习:输出Hello