引导加载程序如何读取 DVD(cd)?

2023-12-03

我有一个用汇编语言编写的第一阶段引导加载程序。我需要它从 DVD(或 CD)加载第二阶段引导加载程序。我只找到了从软盘或硬盘读取的示例。那里使用的中断是13h。在中断描述中它说它可以读取软盘和硬盘。我尝试使用 13h 来读取 CD,就好像它是软盘一样,但它不起作用。

问题:软盘和 DVD 之间有区别吗(在访问它们的意义上),我可以使用 CHS(磁头,磁头,扇区),扇区大小是多少,我可以使用 13h 指令正确读取 DVD。也许一些例子。我查看了 LILO 的源代码,发现只有 13 小时,所以它一定可以工作。谢谢。


您可以使用以下命令从可启动软盘映像文件制作可启动 CDmkisofs工具。 下面是我在 Windows 下的操作方法:

  1. 创建一个子目录,CdFiles,包含可启动软盘映像 文件,floppy.img(1474560 字节长),以及我发现的任何其他文件 想要在CD上。
  2. mkisofs.exe -b floppy.img -v -r -l -o cd.iso CdFiles

它将创建一个 CD ISO 映像文件,cd.iso,您可以将其刻录在 CD 上并从磁盘启动,也可以在任何 PC 模拟器中使用并直接从映像启动。

BIOS 将模拟 CD 上的软盘驱动器,其内容为floppy.img并且它将能够使用驱动器号 0 通过 int 13h 正常访问自身。为了通过 int 13h 访问整个 CD,您将需要创建一个硬盘驱动器映像(可引导)并指定不同的模拟方法(不知道如何用 mkisofs 来做,从来没有尝试过硬盘图像)。同样的情况也会发生,但现在将在 CD 顶部模拟一个硬盘驱动器,并且对于 int 13h,驱动器号将是 80h。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

引导加载程序如何读取 DVD(cd)? 的相关文章

  • 这段汇编语言代码是什么意思?

    我是一名学生 刚刚开始学习汇编语言 为了更好地理解它 我只是用 C 写了一个简短的代码并将其转换为汇编语言 奇怪的是我有点听不懂 代码是 include
  • 什么时候汇编比C更快? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • NASM 轮班操作员

    您将如何在寄存器上进行 NASM 中的位移位 我读了手册 它似乎只提到了这些操作员 gt gt lt lt 当我尝试使用它们时 NASM 抱怨移位运算符处理标量值 您能解释什么是标量值并举例说明如何使用 gt gt and lt lt 另外
  • 尝试使用 x86 程序集 GNU GAS 在数组索引处赋值时出现错误

    我在用x86GNU 与 GCC 的程序集 并尝试实现相当于以下内容的程序集c c int x 10 x 0 5 但是 当我尝试运行 使用命令 a out 我的汇编代码如下 第一次编译后gcc filename s 错误Segmentatio
  • 普通的 x86 或 AMD PC 是直接从 ROM 运行启动/BIOS 代码,还是先将其复制到 RAM? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道现代计算机已经修改了哈佛架构 它们可以从保存数据的地方以外的地方读取指令 这一事实是否允许它们直接从 ROM 芯片获取指令 他们是先
  • 两个基本的 ANTLR 问题

    我正在尝试使用 ANTLR 来获取简单的语法并生成汇编输出 我在 ANTLR 中选择的语言是 Python 许多教程看起来非常复杂或详细阐述与我无关的事情 我真的只需要一些非常简单的功能 所以我有两个问题 将值从一个规则 返回 到另一规则
  • 汇编8086监听键盘中断

    我有与此完全相同的问题 边画边听键盘 https stackoverflow com questions 13970325 8086 listen to keyboard while drawing 但第一个答案 接受的答案 只听键盘一次
  • 为什么当大小大于 50 时,该程序花费的时间会呈指数级增长?

    所以我正在为类编写一个 ARM 汇编快速排序方法 我对大部分内容都有了解 除了复杂性没有意义 我们将其与我们制作的另一种冒泡排序方法进行比较 它对于具有 1 个参数和 10 个参数的示例表现更好 然而 我什至无法比较 100 个参数测试 因
  • 使用 Easy 68K (68000) 组装范围内的随机数

    我正在使用 Easy 68K 模拟器创建一个简单的黑杰克游戏 需要使用随机数来分配牌 我的牌必须在 2 到 11 的范围内 我似乎每次都得到相同的数字 但它不在我预期的范围内 我的卡值需要以 D3 结束 因此我有以下随机数代码 CLR L
  • Nasm 打印到下一行

    我用 nasm Assembly 编写了以下程序 section text global start start Input variables mov edx inLen mov ecx inMsg mov ebx 1 mov eax 4
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • 程序集比较标志理解

    我正在努力理解汇编程序中的以下代码片段 if EAX gt 5 EBX 1 else EBX 2 在汇编程序中 可以写如下 根据我的书 模拟jge操作说明 https www felixcloutier com x86 jcc您通常会使用
  • MikeOS 引导加载程序中的堆栈段

    我不明白这段代码 mov ax 07C0h Set up 4K of stack space above buffer add ax 544 8k buffer 512 paragraphs 32 paragraphs loader cli
  • 这个反斜杠在这段汇编代码中起什么作用?

    我不确定这些推线有什么区别 修剪下来来自 Linux 的 x86 entry calling h https github com torvalds linux blob 241e39004581475b2802cd63c111fec43b
  • 如何在程序中将自己缝合到自己的尾部,无限循环地封装 64KB 代码段?

    如果指令的顺序执行经过偏移量 65535 则8086将从同一代码段中的偏移量 0 处获取下一个指令字节 接下来的 COM 程序利用这一事实 不断将其整个代码 总共 32 个字节 缝合到自己的尾部 环绕在 64KB 代码段中 你可以称之为二元
  • 是否可以在VM内使用VMX CPU指令?

    VM guest 内部的进程是否有可能使用 VMX AMD V VT x CPU 指令 然后由外部 VMM 处理而不是直接在 CPU 上处理 Edit 假设外部VM使用VMX本身来管理其虚拟客户机 即它在Ring 1中运行 如果可能的话 是
  • 高效memcspn

    有谁知道 memcspn 函数的有效实现吗 它的行为应该类似于 strcspn 但在内存缓冲区中查找跨度 而不是在以 null 结尾的字符串中查找跨度 目标编译器是 VisualC 谢谢 卢卡 一种近乎最佳的实现 size t memcsp
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • 添加冗余赋值可以在未经优化的情况下编译时加快代码速度

    我发现一个有趣的现象 include
  • 汇编器8086将32位数字除以16位数字

    我尝试将 32 位数字除以 16 位数字 例如 10000000h 除以 2000h 根据我尝试做的设计除以 右 4 位数字除以除数 然后左 4 位数字除以除数 这是我的代码 DATA num dd 10000000h divisor dw

随机推荐

  • Access DB 表 - 拆分字段 SQL 命令

    我有一个 Access 2013 数据库表 dbo GOV THE GOAL 我想获取 USSenators 字段 其中包含如下数据 并将其分别拆分为 USSenator1 和 USSenator2 字段 John Smith Sarah
  • 无法调用类型缺少调用签名、映射的表达式

    这段代码的工作原理 class A class B class C const classCFromAOrB element A B C gt new C const a A B new A const c C a map element
  • 最长递增子集 Prolog

    我想在 Prolog 中创建以查找输入列表的最长递增子集 例如 您输入 3 1 2 列表 输出为 1 2 subset 3 1 2 X X 1 2 我有显示此列表的所有子集的代码 subset subset X Y subset X Y s
  • mac osx 10.7 中的 g++

    有没有可能 g 编译器在 mac os x 10 7 中被删除了 我搜索后没有找到任何东西 但我确定我在10 7之前安装了它 Thanks 是的 更新删除了一些已安装的组件 其中包括 Java 和 OS X 管理的 GCC 安装 如果您之前
  • 使用 Node+Express 应用程序时出现“错误:自签名证书”

    出现以下错误 Error self signed certificate at TLSSocket
  • R 和 MATLAB 返回不同的特征向量

    我遗漏了一些明显的东西 但这里是 In R dput M structure c 2 77555756156289e 16 9 63770703841896e 16 0 9 63770703841896e 16 10 65431925623
  • PWA 在独立模式下以浏览器模式打开

    我们建造了一个Progressive Web App来自现有的 Angular 4 项目 一切正常 直到我们添加清单文件 当您从浏览器访问该应用程序时 它会提示您将其添加到主屏幕 但是添加后 当您单击主屏幕上的图标时 它会在Browser
  • 从java中的jtable单元格获取最新值

    有人可以举一个下面问题的例子吗 我有一个如下所示的 jtable plus minus total 10 0 10 0 2 8 0 3 5 如何获得最新总计 5 的值 以便我可以在公式中再次使用它 总计 总计 加减 另外 总计的值也会不断更
  • 强制应用程序仅运行单核?

    我在使用某些第三方 DLL 时遇到了这个奇怪的问题 每当我尝试使用某种方法时 第三方提供商都会引用一些出现内存异常的开源 DLL 当应用程序在单核计算机上运行时 不会出现此问题 但显然我们不能假设用户会遇到此问题 有没有办法强制应用程序 或
  • Google App Script GAS 表中的上次修改日期

    我正在尝试从我正在开发的 GAS 添加中获取工作表的最后修改日期 我当前的想法是获取驱动器修订列表 然后取最后一个值 对于仅获取最后一次修改来说 这似乎有点矫枉过正 我还担心如果修订次数超过此链接建议的 1000 这将会中断 https d
  • 如何在Python中与beautifulsoup并行抓取多个html页面?

    我正在使用 Django Web 框架用 Python 制作一个 Web 抓取应用程序 我需要使用 beautifulsoup 库抓取多个查询 这是我编写的代码的快照 for url in websites r requests get u
  • 重写规则不适用于 IIS 上的 CakePHP

    我一直在尝试使用根文件夹中的以下 web config 设置来让重写规则在 IIS 上为 CakePHP 工作
  • 在 AlaSQL/JS-XLSX Excel 导出上定义单元格格式

    是否可以在 AlaSQL 导出到 Excel 时定义单元格格式 我正在维护一个使用 AlaSQL 将网格数据导出到 Excel 的系统 问题是 Excel 数据未转换为 NUMBER DATE 值可以 但数字类型始终显示为常规 通过在 JS
  • 如何在 Swift 中使用 UnsafeMutablePointer

    如何使用UnsafeMutablePointer
  • 带命名参数的 PDO 语句 VS 问号参数

    我有一个用于数据库管理的类 我的一个子类 定义查询的子类 是这样定义的 只是一个示例 实际上为了测试目的而删除了许多其他函数 namespace Tests SQL Arguments SQL query class Query publi
  • 批处理文件中 msg * 命令的高级用法?

    编辑 对于这个问题 我已经开始悬赏 50 美元给给出最佳答案的人 嗨 我想知道是否有一种方法可以使用批处理文件来使弹出窗口出现msg hi 命令以及除了默认情况下的选择 取消和确定 之外的其他选择 我的意思是向弹出消息添加自定义按钮 例如
  • 查找某个类元素的 Dom 节点索引

    您好 我有一系列不同类别的标签 单击跨度时 我想返回跨度类的索引 所以不是跨度本身的索引 这是一个示例 html span class spantype1 text1 span span class spantype2 text2 span
  • 如何找到SQL Server运行端口?

    是的 我读过这个如何找到 MS SQL Server 2008 的端口 no luck 远程登录1433 返回连接失败 所以我必须指定其他端口 我尝试使用 网络统计 abn 但我在这个列表中没有看到 sqlservr exe 或类似的东西
  • ExecuteReader CommandText 属性尚未正确初始化

    首先 如果某些代码不正确 我们深表歉意 我对在 vb net 上使用 sql 还很陌生 我有以下代码 Imports MySql Data MySqlClient Imports System Data SqlClient Public C
  • 引导加载程序如何读取 DVD(cd)?

    我有一个用汇编语言编写的第一阶段引导加载程序 我需要它从 DVD 或 CD 加载第二阶段引导加载程序 我只找到了从软盘或硬盘读取的示例 那里使用的中断是13h 在中断描述中它说它可以读取软盘和硬盘 我尝试使用 13h 来读取 CD 就好像它