栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

引导扇区程序

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

引导扇区程序

环境:
  • 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,符合条件。
最后开机就可以成功卡机并执行汇编程序了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451161.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号