引导扇区

boot.asm

	org	07c00h			; 告诉编译器程序加载到7c00处
	call	DispStr			; 调用显示字符串例程
hlt:	hlt
	jmp	hlt			; 无限循环
DispStr:
	mov	ax, BootMessage
	mov	bp, ax			; ES:BP = 串地址
	mov	cx, 18			; CX = 串长度
	mov	ax, 1301h		; AH = 13,  AL = 01h
	mov	bx, 000ch		; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
	mov	dl, 0
	int	10h			; 10h 号中断
	ret
BootMessage:		db	"Hello, OS world!88"
times 	510-($-$$)	db	0	; 填充剩下的空间,使生成的二进制代码恰好为512字节
db 55h,0aah                                     ; 结束标志

./nasm boot.asm -o boot    //编译

dd if=boot of=a.img count=1   //制作一个软盘镜像,用virtualbox启动,可以看到启动成功,有"Hello, OS world!88"的打印

dd if=boot of=NewVirtualDisk1.hdd count=1  //制作一个硬盘镜像,用virtualbox启动,可以看到启动成功,有"Hello, OS world!88"的打印

若存于硬盘第一个扇区,则这段代码称为:硬盘主引导记录;若存于硬盘某个分区的第一个扇区,则称为:分区引导记录;若存于软盘的第一个扇区,则称为:软盘引导记录。磁盘引导记录的重要标志是是最后的55h和0aah

备注:nasm,dd 有linux版的,也有windows版的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值