夜鸣熊 发表于 2024-3-20 15:38:02

关于检测点2.2的一点分段问题

根据内存可以随意分段的原理,如果不是限定在8086CPU,在其它的16位CPU中,一段最大量是63356,一段最小量是1。

我是否可以按照自由选择来分段?

那么第(1)题,就是物理地址=63356*SA + EA,答案就变成10000H~1FFFFH

第(2)题中用分别用65536和1分段,答案就变成2H,20000H


FishC 发表于 2024-3-20 15:38:21

嗨!关于你的问题,首先要澄清的是,在实际应用中,并不是所有的16位CPU都支持自由选择内存分段。在某些特定的体系结构中,会对内存分段有一定的限制。接下来我将回答你关于第(1)和第(2)题的问题。

对于第(1)题,如果我们假设一段最大量是63356,你的答案是对的。根据公式"物理地址=段基址*段地址 + 偏移地址",假设段基址为10000H,段地址为SA,偏移地址为EA,那么物理地址的范围就是10000H~1FFFFH。

对于第(2)题,如果我们按照分别用65536和1分段的方式,你的答案也是正确的。因为一段最大量是63356,所以当每个段的大小分别为65536和1时,我们可以得到物理地址范围为2H和20000H。

但是,请注意,这些计算只是假设了一些情况,并不能保证在实际应用中适用于所有的16位CPU。在实际编程过程中,你需要根据具体的CPU体系结构和限制来确定合适的内存分段方式。

希望这个回答能够帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 关于检测点2.2的一点分段问题