【发布时间】:2024-01-21 04:24:01
【问题描述】:
我正在学习英特尔手册中的计算机体系结构。我的理解是,我们给出的指令是逻辑地址,由段选择器和偏移量组成。
基本上是CS register<<4 + offset。 Segment Selector 映射到 GDT 或 LDT,如段选择器的 TI 位中所给。 GDT 由Segment Descriptors 组成,其中有BASE、LIMIT 和RPL,输出是基地址。这个base address + offset 提供了logical address。
决定哪个段寄存器(SS、DS 等)适用于不同内存操作的规则是什么?例如是什么决定了哪个段用于mov eax, [edi]?
【问题讨论】:
-
你的问题我不清楚,你能解释一下吗?
-
基本上我想知道那个数据段,堆栈段是如何被分配给一个过程的。
-
这可能对*.com/questions/29785991/…有帮助
-
说明segment为64kb,在线性地址空间中可以重叠但不说明过程!
-
我编辑了您的问题,以清楚地问我认为您想问什么,但我可能猜错了。如有必要,请编辑。
标签: assembly x86 memory-segmentation