【发布时间】:2018-09-29 20:17:21
【问题描述】:
如果8086汇编程序中数据段的首地址是0000,那么末地址是多少(十六进制)?
如果这取决于安装的 ram 数量,那么我说的是 dosbox。
【问题讨论】:
-
你的问题有点混乱。 8086 上没有单个数据段。您可以通过将段寄存器指向它来使用您喜欢的任何段。请尝试澄清您的问题。请注意,您可以使用
int 12h向 BIOS 询问您有多少 RAM。
如果8086汇编程序中数据段的首地址是0000,那么末地址是多少(十六进制)?
如果这取决于安装的 ram 数量,那么我说的是 dosbox。
【问题讨论】:
int 12h 向 BIOS 询问您有多少 RAM。
8086 中的一个段总是只有 65536 个字节。
因此数据段的最高地址为 65535 或十六进制的 0FFFFh。
这与安装的 RAM 数量无关!
【讨论】:
9F00:C000 将无法正常工作。它与segment:offset 方案无关,它总是采用两个 16 位值 (0000-FFFF)
8086 架构可以寻址从 0x00000 到 0xfffff 的 1MB 内存。
重要的是,您不能使用单个段一次访问整个地址空间。当您使用ds 段寄存器(或任何其他)时,您可以一次操作多达 64kB 的 RAM。
【讨论】: