卓一笔记---一个20行的引导程序

鄙人从今天起学习于渊老师的自己写操作系统一书,特此做笔记,以供来日参考.

1.编辑程序boot.asm,内容如下

org 07c00h ;告诉编译器程序加载到7c00地址处
mov ax, cs
mov ds, ax
mov es, ax
call DispStr ;显示字符串
jmp $
DispStr:
 mov ax, BootMessage
 mov bp, ax    ;10号bios中断程序,功能号13时,显示字符串的起始地址为es:bp
 mov cx, 16    ;10号bios中断程序,功能号13时,显示字符串的长度在cx中
 mov ax, 1301h ;让ah=13,al=01,作为10号bios中断程序的传入参数
 mov bx, 000ch ;页号为0(BH=0) 黑底红字(BL=0ch)
 mov dx, 0     ;10号bios中断程序,功能号13时,字符串显示的横纵坐标为(dh,dl)
 int 10h       ;调用10h号bios中断子程序
 ret
BootMessage:  db   "Hello, OS world!"
times 510-($-$$) db 0 ;输出字符串往后的地址填0
dw 0xaa55             ;结束标志,代表前面的一段程序为系统引导程序

2. 用命令 nasm boot.asm -o boot.bin将汇编源文件boot.asm编译成boot.bin

3.找一个u盘插入电脑(我的计算机是linux系统),lsblk查看硬盘信息,假设u盘为/dev/sdb4,那么在未挂载的情况下可以

使用下面的命令将刚才的文件刻录到u盘中

sudo dd if=boot.bin  of=/dev/sdb4 bs=512 count=1 conv=noerror,sync

4.刻录完成后,重启计算机,计算机系统启动方式改为从u盘启动,启动完成后可以看到下面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值