那么,你所用数据的上下文也就被限定在了 IA-32 保护模式的指令寻址中.
从而,在保护模式下intel 64位 IA-32 指令使用逻辑地址, 这个逻辑地址的长度也在手册中指出了: A logical address consists of a 16-bit segment selector and a 32-bit offset (see Figure 3-5)
这个我已经在12楼指出,你可能没看清.
80X86最多有64个段?好像没见过这样的说法。
[/Quote]
在Intel® 64 and IA-32 ArchitecturesSoftware Developer’s Manual
Volume 1:Basic Architecture上面看到这么一句话:
Programs running on an IA-32 processor can address up to 16,383 segments of different sizes and types, and each segment can be as large as 232 bytes.
也就是说段的数量确实是由限制的。。但是不知道是怎么计算的
望高人求解
在Intel® 64 and IA-32 ArchitecturesSoftware Developer’s Manual
Volume 1:Basic Architecture上面看到这么一句话:
Programs running on an IA-32 processor can addr……
也就是说段的数量确实是由限制的。。但是不知道是怎么计算的...
[/Quote]
Intel® 64 and IA-32 Architectures Software Developer's Manual
Volume 3A: System Programming Guide
3.4
Even with the minimum use of segments, every byte in the processor’s address
space is accessed with a logical address. A logical address consists of a 16-bit
segment selector and a 32-bit offset (see Figure 3-5).
也就是说:CPU指令,逻辑地址有46位,其中14位(16K=16384)用于段选,32位用于段内偏移。