1

前几天在阅读The Art of Assembly时,我来到了这里关于内存布局的部分。它开始讨论分段内存,我认为它没有多大意义。

将内存分割成段作为一种组织方式非常有意义,但是使用函数segment + offset,当函数重复其输出时你会怎么做?eg 1038 + 57, 57 + 1038,1095 + 0都出来到线性地址 1095。这不是坏事吗?当您不打算这样做时,您不会不小心处理相同的线性内存空间吗?

Wikipedia 说它可以用于一个优势,“例如在处理多个嵌套数据结构时”,但是如何使用它来更快地处理嵌套结构呢?

4

1 回答 1

2

您错过了文本中如何计算这些地址的重要部分。

在 8086、8088、80186 和 80188(以及其他实模式下运行的处理器)上,将段映射到物理地址的函数非常简单。CPU 将段值乘以十六 (10h) 并添加偏移部分。

并且不要忘记这些地址总是以十六进制计算的。

于 2013-08-17T21:17:54.940 回答