问题标签 [mbr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2078 浏览

assembly - mov si, offset msg 中的 FASM vc MASM 翻译问题

刚刚使用相同的代码(almos)对 MASM 和 FASM 进行了第一次测试,我遇到了麻烦。唯一的区别是,为了只生成 104 字节,我需要在 FASM 中写入 MBR,我将 org 7c00h 和 MASM 0h 放入。

问题出在

在第一种情况下将其转换为 44 7C (7c44h) 并使用 masm 转换为 44 00 (0044h)!但就在我在 MASM 中将 org 7c00h 更改为 org 0h 时。否则它将产生从 0 到 7dff 的整个段。

我该如何解决?

或者简而言之,如何使 MASM 生成一个从 7c00h 开始的二进制文件,因为它的第一个字节和后续跳转仍然相对于 7c00h?

0 投票
2 回答
743 浏览

assembly - 基于堆栈的int 0x13函数0x42实现的问题

我正在尝试一种新方法来处理 int 0x13(只是为了了解有关系统工作方式的更多信息):使用堆栈创建 DAP ..

假设 DL 包含磁盘号,AX 包含 PT 中可引导条目的地址,DS 更新到正确的段并正确设置堆栈,这是代码:

如您所见:我将 dap 结构压入堆栈,更新 DS:SI 以指向它,DL 已设置,然后将 AX 设置为 0x42 并调用 int 0x13

结果是 AH 中的错误 0x01 和明显的 CF 设置。没有扇区被转移。我没完没了地检查堆栈跟踪,没关系,分区表也没问题..我不知道我错过了什么......

这是磁盘地址包的堆栈跟踪部分:

我正在使用 qemu 最新版本并尝试从硬盘驱动器(0x80)读取,还尝试对具有相同结果的结构进行 4 字节对齐(CF 1 AH 0x01),存在扩展。

0 投票
2 回答
532 浏览

mbr - USB 编程作为 MBR 程序

我想知道 MBR 是否可以从 USB 端口读取数据?

我希望它根据从 USB 端口读取的值来加载 Windows 或 linux

0 投票
2 回答
8647 浏览

android - 在 Android 上对文件系统进行分区

我正在尝试使用 root 访问权限在 Android 上重新分区 SDCard。

我有 512 字节的 MBR 文件,它显示为:

我正在尝试做的是将 5.9GB 分区的大小调整为 3GB,然后用剩余空间制作一个 EXT 分区。我可以想到两种方法来做到这一点,但我在做这两种方法时有点难过:

1)交叉编译GNU parted,并在Android上运行以修改文件系统。这将是我的首选方法,但我一直在尝试使用 scratchbox 静态编译 parted 并且运气不佳,而且我也无法在 scratchbox 中为 Android 动态编译。

2)使用我电脑上的一些实用程序直接修改512字节的MBR,然后在Android上dd文件。我有一个查看 MBR (mbrwiz) 的工具,但我不知道如何编辑它。

有没有人有任何建议,或者可能是第三条路线?

0 投票
4 回答
24012 浏览

powershell - 使用 Powershell 检测 GPT 和 MBR 分区

有没有办法判断磁盘是否有 GPT 或带有 powershell 的 MBR 分区?

0 投票
1 回答
239 浏览

dos - 无法运行dos MBR

伙计们。我从 C 盘读取 MBR 到内存,例如 0:0200H,然后调试它。但是,当我到达 0:7c18H REPZ 0:7c19H MOVSB 时,我收到一条消息“CPU 错误:操作码不正确。杀死进程。 ' 我不知道如何处理它。任何帮助将不胜感激。谢谢。

0 投票
1 回答
392 浏览

mysql - 空间几何索引的性能是否取决于几何形状的大小和密度?

空间索引

给定一个空间索引,是索引效用,也就是说索引的整体性能,只和整体几何一样好。

例如,如果我要获取一百万个几何数据类型并将它们插入到表中,以便它们的相对点彼此密集定位,这是否会使该索引对相对位置可能明显更稀疏的相同几何形状表现更好.

问题 1

例如,采用这两种几何形状。

情况一

在几何上它们是相同的,但它们的坐标相差一个点。想象一下,这被重复了一百万次。

现在以这种情况,

情况2

在上面的例子中:

  • 线条尺寸与情况 1 相同,
  • 线的点数相同
  • 这些线具有相同的尺寸。

然而,

  • 不同之处在于线条之间的距离更远。

为什么这对我很重要?

我问这个问题的原因是因为我想知道是否应该尽可能多地从输入几何图形中删除精度,并在不损失精度的情况下尽可能多地降低它们的密度和彼此之间的接近度。

问题2

这个问题类似于第一个问题,但不是在空间上接近另一个几何形状,而是应该将形状本身简化为尽可能小的形状来描述应用程序需要什么。

例如,如果我要在几何数据类型上使用空间索引来提供日期数据。如果我想存储两个日期的日期范围,我可以在 mysql 中使用 datetime 数据类型。但是,如果我想使用几何类型怎么办,以便通过获取每个单独的日期并将其转换为 unix_timestamp() 来转换日期范围。

例如:

现在,我可以根据这两个整数创建一个 LINESTRING。

如果我的应用程序实际上只关心天数,而秒数对于日期范围根本不重要,我是否应该重构我的几何图形,以便将它们缩小到尽可能小的尺寸以满足他们的需求。

因此,我将使用“1293861600”/(3600 * 24)而不是“1293861600”,这恰好是“14975.25”。

有人可以帮助填补这些空白吗?

0 投票
2 回答
858 浏览

cpu-architecture - 读取硬盘 MBR 时的字节顺序

我打印了奔腾 M 笔记本电脑硬盘的 MBR。这是我使用的命令:

我希望在输出中按顺序获取字节,但似乎每一对字节都是颠倒的。

例如,以下 16 个字节描述了第二个分区:

这是一个可引导分区。因此,该分区条目中的第一个字节应该是 80。第 5 个字节应该有文件系统代码,对于 NTFS,它是“07”。但是,它们分别出现在第 2 和第 6 位。

另一个例子 - 最后 4 个字节应该是分区的大小。这对于 0x03531990 (28.5GB) 是有意义的。但是,上面的输出显示 1990 0353。

看起来它正在反转每一对字节。因为这是一个小端芯片,我可以看到它把最低有效字节放在第一位,但它不能从字长开始工作吗?那将是4个字节。上面的输出似乎每 2 个字节反转一次。

对此非常困惑,任何帮助将不胜感激。谢谢!

0 投票
1 回答
1783 浏览

assembly - bios int 0x13 失败且没有错误

我正在编写一个用于教育用途的引导加载程序,并且运行良好。但是当我尝试在真机上启动时,我的磁盘读取代码无法加载某些扇区。没有给出错误代码,也没有设置 CF。它还在 al 中返回 1,这意味着已读取 1 个扇区(应该是正确的)。但是当我尝试跳转到加载的扇区时,它只是挂起并且什么也不做。第一阶段打印一个 A,第二阶段用 F 覆盖。当您使用真实硬件启动时,只显示 A。所以这个扇区不在它应该在的内存中。

这是我的 MBR:

第 2 阶段:

它在 kvm 中完美运行,但不适用于具有真实 bios 的真实硬件。我使用 USB 闪存驱动器在真实硬件上测试启动。

问题可能是我没有在我的 mbr 的第一个字节中定义的 BPB 吗?我不这么认为,因为我只是阅读原始扇区。如果我错了,请纠正我。

有人知道它可能是什么吗?

谢谢

0 投票
3 回答
248 浏览

c++ - c ++从无文件系统执行代码

首先,很难确定一个标题,而且有点模棱两可,但是哦,好吧。

好的,所以我有一个混合的 c++ 和 asm 引导加载程序。我可以将它复制到我的 mbr 上并运行它。我遇到的唯一问题是 mbr 非常小。我假设它的目的是只调用写在驱动器其他地方的外部代码。我的问题是,我不确定如何访问它。我的意思是我可以把数据放在那里,我只是不知道如何以编程方式访问该数据,因为本质上驱动器不会有“文件系统”,只是任意代码。

我在网上搜索过,但关于真正低级开发的教程似乎很少。

如果有的话,我什至想要一个 c++ 库。