02.汇编实现启动扇区

前言

软盘的启动扇区头512字的内容是需要使用汇编实现,内核加载器需要把操作系统加载进内存,实现加载完成后就可使用C语言编写操作系统。

目标

1.使用汇编实现hello,world 的输出

文件名:boot.s

;能用于操作内存的寄存器只能是bx、bp、si、di
;0x7c00--0x7dff 这512字节用于启动区
;对内存的访问都必须指定段寄存器,没有显示指定时将使用ds作为段寄存器

org 0x7c00;

mov ax,0
mov ss,ax
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

nasm 汇编器(如果没有nasm汇编器,可参看https://blog.csdn.net/Zllvincent/article/details/83269154)编译boot.s 文件,终端运行 nasm boot.s -o boot.bat

2.使用gcc 编译os.c文件

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


void makeFloppy(char *fname){
    char img[512];
    FILE *fp = fopen(fnam
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值