【发布时间】:2014-07-30 03:12:18
【问题描述】:
x86 架构内存位置的大小为 8 位,内存段为 16 位。 内存位置和内存段有什么区别?
【问题讨论】:
-
您所说的"location"是指offset吗?顺便说一句,它不是 8 位;地址的偏移部分是 16 位或 32 位(在 IA-32 上)。请参阅英特尔软件开发人员手册第 1 卷中名为“32 位和 16 位地址和操作数大小”的部分。
-
但是结合段部分和偏移部分,我们可以用 8 位寻址一个内存位置。
-
哦,我想我误解了这个问题。问题中的位置是可寻址内存中的单个字节(?)。因此,假设 16 位实模式,您将从
segment * 16 + offset获得一个 20 位地址,这允许您寻址 1MB 范围内的任何字节。
标签: assembly architecture x86