02.汇编实现启动扇区

本文介绍了如何使用汇编语言实现启动扇区,从而在加载完成后输出"Hello World"。通过nasm汇编器编译boot.s,接着用gcc编译os.c,最后生成system.img并在虚拟机中运行,成功展示了简单的汇编编程技巧。
摘要由CSDN通过智能技术生成

前言

软盘的启动扇区头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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值