我读到,在 Intel 8086 CPU 时代,最大的寄存器是 16 位,每个人都在寻找一种访问超过 65536 字节线性内存的方法,但他们没有扩展 CPU 寄存器,而是发明了段:偏移寻址方案以及我的理解方式是,您可以将两个 16 位寄存器“分组”到一个 32 位内存地址中。但在同一地方我也读到 CPU 只能访问 1MB 内存。这是如何运作的? 2^32 等于 4,294,967,296 所以我不明白,请赐教:)
最佳答案
段寄存器值左移4(乘以16)并添加到地址地址的“偏移”部分。
16 * 65536 = 1 兆字节。
关于x86 - :offset addressing scheme work?段如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694950/