- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为自己编写 bootstrap 和内核, bootstrap 和内核都将刻录在 CD-R 上,并将用作 CD-live。它不是 linux CD-Live 或其他东西,完全是我自己的 bootstrap 和内核。我不想使用其他 booloader(即 GRUB),所以请不要建议我使用它们。
这是我的问题:
在我的引导加载程序 ASM 代码中,我想将我的内核和内核条目加载到 RAM 来自光盘 (不是来自硬盘或软盘),让我们假设我们知道内核在 CD-ROM 上的确切位置(扇区号)。
据我所知,我必须使用 int 0x13, AH = 02h 它将扇区从 Drive 读入 RAM。
为了使用这个中断服务,我必须设置几个我将在下面列出的寄存器:
参数:
啊 02h
AL 扇区读取计数
CX Track + Sector/见备注
DH 头
DL 驱动器
ES:BX 缓冲区地址指针
我的问题是关于DL和DH。为了指向第一个硬盘驱动器读取,我们可以将其设置为80h,或者对于软盘我们可以将其设置为00h。但我想从 CD-ROM 读取,我不知道我必须为 DH 和 DL 使用什么值。
为了从 CD-ROM 读取 几个扇区进入 RAM 它是一个正确的中断(int 0x13)吗?如果是,我应该为 DH 和 DL 赋予什么值(value)。
问候,
波利亚。
最佳答案
为了使 BIOS 从 CD 加载引导扇区,您需要使用 "El Torito" 使 CD 可引导。标准。
一旦你使用它,你有两个选择
一种。模拟 - BIOS 模拟软盘或硬盘驱动器,您可以通过设备 00 或设备 80 的 INT13 调用读取内核。
湾该设备不模拟,您可以使用 INT13 ExtendedRead 函数直接从 CD 读取。
要了解这是如何完成的,请查看 Linux“ISOLINUX”加载程序 - ISOLINUX.ASM
为您的问题提供更具体的起点,El Torito 规范,第 5.3 节:
Once the system jumps to segment:0, the program can retrieve its boot
information by issuing INT 13, Function 4B, AL=01. After the boot process
has been initiated the INT 13 Extensions (functions 41-48) will access the
CD using 800 byte sectors and the LBA address provided to INT 13 is an
absolute sector number. This gives any program running in no emulation mode
the ability to locate the boot catalog, and any other information on the
CD, without providing a device driver.
关于assembly - 如何使用汇编 (NASM) 从 CD-ROM 将内核加载到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856050/
在rom-sql我想启用日志记录,以便我可以看到生成的所有 sql 查询。 我怎样才能做到这一点? 因为它在下面使用续集,我想它可能会通过 sequel logger 以某种方式实现。 . 最佳答案
如何获取所有驱动器的列表以及相应的驱动器类型(可移动、本地磁盘或 cd-rom、dvd-rom 等)? 最佳答案 通过这段代码你可以获得所有驱动器及其类型描述 File[] paths; FileSy
我正在尝试通过 C 代码弹出我的 CD ROM。它不想工作。 ioctl 返回“5”I/O 错误,哪里可能有问题? #include #include #include #include #i
我在网上的几个地方找到了这个问题,但从来没有一个好的答案。让我具体回答所提出的问题。 我想构建一个只有一个应用程序的自定义 Android ROM。此应用程序不与任何硬件交互(现在)。此应用程序将在设
我正在开发基于 Renesas RL78 Controller 的汽车软件堆栈。直接进入问题,声明为 const(ROM 变量)的变量未使用定义的值进行初始化。 例如:const uint8 var_
有人知道用什么语言ROM(例如GBA ROM)编码吗?我还想知道是否有一种简单的方法可以反编译这些ROM。 最佳答案 GBA游戏可以用任何语言编程,只要可以编译为ARM汇编即可。 它们通常是用C++编
是否有一个 ROM 字节在正常操作中未使用? 我想解码地址总线,拉低 ROMCS 并将数据放入数据总线仅针对一个地址。 ROM 中是否有一个地址在 ZX Spectrum 的正常操作中从未使用过?也许
我正在尝试为自定义 ROM 制作更新程序。我可以通过以下方式从我的应用中恢复: Process p = Runtime.getRuntime().exec("su"); OutputStream os
如何检测小米MIUI ROM下运行的设备?我可以使用以下代码检测 Xiomi 设备。 String manufacturer = "xiaomi"; if (manufacturer.equalsIg
我想检查我的设备是否安装了自定义 ROM。如果任何设备上有自定义 ROM,我不希望我的应用程序运行。我如何通过代码知道这一点? 最佳答案 System.getProperty("os.version"
我完成了我的 6502 模拟器的编写,我准备开始测试它了。我找到了 nestest带有一些文档的 ROM,但我不确定加载 ROM 的正确方法是什么。作者说,模拟器应该从0xC000开始,当我加载ROM
我有一个需求是这样的:我们有定制的 Android 设备,上面安装了定制的 ROM。我需要能够通过应用为此自定义 ROM 安装更新。 我想解决这个问题的方法是通过 ftp 从服务器下载自定义 rom,
我想在我的自定义 AOSP rom 中禁用主页、菜单和后退按钮。我在互联网上搜索过,看到我可以在 out/target/product/generic/system/usr/keylayout 中找到
我正在开发一个 Android 应用程序,但我想将我的应用程序限制为只能由未运行有根/自定义 ROM 的硬件访问。我知道 Android 的前向锁定内容保护,但想在我的应用程序中仔细检查此保护。有什么
最近一直在使用闪存 ROM,我发现无论是在芯片的内部闪存内还是在外部 SPI 闪存设备中,扇区的大小通常都是这样的: 我很好奇为什么起始地址空间的扇区比后面的地址小。我怀疑使用引导加载程序之类的东西会
我需要创建一个提供一些功能的 ROM 掩码。不过,应该可以覆盖提供固件补丁的功能。因此,补丁表应该位于Flash存储器中,以后固件升级可能会被覆盖,而固件的主要部分位于mask ROM中,以后无法修改
我想在基于 ARM 的智能手机上全新安装嵌入式 Linux。为此,我需要闪存、显示器等设备驱动程序。我想知道是否可以从这些手机供应商提供的 ROM 中提取设备驱动程序? 最佳答案 不,这通常是不可能的
制作自定义 rom 是否涉及与制作应用程序相同的技能组合?他们是同一个吗? 最佳答案 没有。自定义 ROM 需要对比制作应用程序低得多的编程有很好的理解。几乎任何人都可以使用 CS、ZDE 或 Net
我做了一个前台服务来不断扫描我周围的 BLE 设备。出于某种原因,它似乎在我的安卓设备谷歌像素和三星 S9+ 上完美运行。 但最近我用中文 ROM(Oneplus 6T,小米 Poco F1)测试了该
我正在编写一个需要区分 Android Stock ROM 和其他 ROM(如 SenseUI 等)的应用。 如何在我的应用程序中执行此操作? 谢谢。 最佳答案 我发现使用 getprop 查询 ro
我是一名优秀的程序员,十分优秀!