实验1.第一次编写mbr

简介

实验 1:编写 mbr,在屏幕上显示字符。

代码

boot/mbr.s

; boot/mbr.s
; 功能:在屏幕上显示字符

SECTION MBR vstart=0x7c00
	mov ax,cs
	mov ds,ax
	mov es,ax
	mov ss,ax
	mov fs,ax
	mov sp,0x7c00

; 清屏利用0x06号功能,上卷全部行,则可清屏。
; 输入:
; AH 功能号=0x06
; AL = 上卷的行数(如果为0,表示全部)
; BH = 上卷行属性
; (CL,CH) = 窗口的左上角的(X,Y)位置
; (DL,DH) = 窗口的右上角的(X,Y)位置
; 无返回值:
	mov ax,0x600
	mov bx,0x700
	mov cx,0
	mov dx,0x184f
	int 0x10


; 获取光标位置
; 输入:
; ah 功能号3
; bh 页号
; 输出:
; ch=光标开始行
; cl=光标结束行
; dh=光标所在行号
; dl=光标所在列号
	mov ah,3
	mov bh,0
	int 0x10

; 调用13号子功能打印字符串
; 输入:
; ah 功能号13
; al设置写字符方式 ah=01:显示字符串,光标跟随移动
; bh设置要显示的页号,此处是第0页
; ;bl中是字符属性,属性是黑底绿字(bl=02h)
; es:bp为串首地址
; cx为串长度,不包括结束符0
	mov ax,message
	mov bp,ax
	mov ax,0x1301
	mov bx,0x2
	mov cx,9
	int 0x10

	jmp $

	message db "hello mbr"
	times 510-($-$$) db 0
	db 0x55,0xaa

编译

Makefile

BUILD_DIR = ./build

.PHONY : mk_dir bootloader clean all

mk_dir: #创建build目录
	if [ ! -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi

bootloader: #编译启动内核的文件 bootloader
	nasm -I include/ -o $(BUILD_DIR)/mbr.bin boot/mbr.s

	dd if=/home/c/tityos/build/mbr.bin of=/home/c/tityos/hd60M.img bs=512 count=1 conv=notrunc

clean: #删除build目录里的全部文件
	cd $(BUILD_DIR) && rm -f  ./*

# 创建build目录。编译启动内核的文件。
all: mk_dir bootloader

运行

start.sh

# !/bin/bash
# 功能:启动bochs

bin/bochs -f bochsrc.disk

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 13:18:07       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 13:18:07       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 13:18:07       57 阅读
  4. Python语言-面向对象

    2024-07-16 13:18:07       68 阅读

热门阅读

  1. VUE中使用this.$emit()的使用进行父子组件之间传值

    2024-07-16 13:18:07       21 阅读
  2. Python-数据爬取(爬虫)简介

    2024-07-16 13:18:07       23 阅读
  3. 讲解机器学习中的 K-均值聚类算法及其优缺点

    2024-07-16 13:18:07       24 阅读
  4. c++单例模式

    2024-07-16 13:18:07       28 阅读
  5. ArrayList详解

    2024-07-16 13:18:07       21 阅读
  6. 系统架构设计师知识点总结目录篇

    2024-07-16 13:18:07       21 阅读
  7. StudentRequest

    2024-07-16 13:18:07       16 阅读
  8. Mysql知识大全

    2024-07-16 13:18:07       15 阅读
  9. 系统架构师(每日一练)

    2024-07-16 13:18:07       20 阅读