如果用户不使用 ROMS 指令,实用程序会定义单一默认范围,其中包含整个地址空间。这与提供单一范围、无原点或长度的 ROMS 指令等效。
如果用户希望实现以下目标,请使用 ROMS 指令:
- 将大量数据编程到固定大小 ROM 中。如果指定的存储器范围与 ROM 长度对应,实用程序会自动将输出拆分为适合 ROM 的块。
- 将输出限制到特定区段。用户还可以使用 ROMS 指令限制转换到目标地址空间的特定区段。实用程序不会转换由 ROMS 指令定义的范围之外的数据。段可跨越范围界限;实用程序会在边界处将它们拆分为多个范围。如果某个段完全位于用户定义的范围之外,实用程序不会转换该段,也不会发出消息或警告。因此,用户可以不在 SECTIONS 指令中列出这些段的名称,从而排除它们。但如果一个段有部分位于某范围内,部分位于未配置的存储器中,实用程序会发出警告,并且只转换范围内的那部分。
- 使用映像模式。如果使用 --image 选项,则必须使用 ROMS 指令。每个范围都会全部填充,以便范围内的每个输出文件都包含整个范围的数据。段前、段后和段之间的空洞会使用 ROMS 指令用 --fill 选项指定的填充值填充,或用默认值 0 填充。