引导扇区程序

环境:
  • vscode 作为编辑器用于编写代码,为了提高写程序的效率,在vscode中下载NASM插件,该插件可以提供NASM代码高亮和代码修正功能。

  • NASM汇编器,用于对写好的代码进行汇编产生COM文件 。

  • WinHex用于查看和修改二进制文件。

  • VMware Workstation 用于创建虚拟机并测试扇区引导程序。

原理
  • 软盘的第一个扇区是0面0道1扇区,或者说是0头0柱1扇区,这个扇区称为主引导扇区。

  • 读取的主引导扇区数据有512字节,ROM-BIOS程序将它加载到逻辑地址0x0000:0x7c00处,也就是物理地址0x07c00处,然后判断它是否有效。 一个有效的主引导扇区,其最后两字节应当是0x55和0xAA。ROM-BIOS程序首先检测这两个标志,如果主引导扇区有效,则以一个段间转移指令jmp 0x0000:0x7c00跳到那里继续执行。

步骤

创建虚拟机

在WM中选择创建新的虚拟机进入新建虚拟机向导

(1)由于要创建一个虚拟裸机,所以选择不安装操作系统

在这里插入图片描述

(2)由于本实验不需要安装操作系统,可以选择任意一种即将安装的操作系统,这里选择MS-DOS

在这里插入图片描述

(3)命名虚拟机并选择要存放虚拟机的位置

在这里插入图片描述

(3)点击下一步,点击自定义硬件后进入硬件设置界面

在这里插入图片描述

(4)点击添加,选择软盘驱动器,点击完成,就生成了软盘

在这里插入图片描述

注:img,flp文件都可以作为软盘映像文件,可以直接更改后缀名。

(5)在右侧“连接“ 一栏点击使用软盘映像文件,点击创建,选择一个目录,就可以创建一个软盘。这样就完成了虚拟机的创建和虚拟软盘的生成。点击关闭,然后点击完成。这时运行虚拟机会显示。

在这里插入图片描述
并且无法开机,这是因为软盘中没有加载引导程序。

编写程序
使用NASM语言编写,在程序最后使用如下语句将文件填充至512B

org 7c00h                 ;设置代码段初始偏移量为7c00h
times 510-($-$$) db 0     ;将代码结束到510B之间的字节填充为00h
db 0x55                   ;设置最后两个字节为55h和AAh
db 0xAA

使用如下指令编译

nasm test7.asm -o test7.bin

使用WinHex对软盘文件进行修改
在这里插入图片描述
此时引导盘最后两个字节为 55 AA,符合条件。
最后开机就可以成功卡机并执行汇编程序了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值