哪个说法是正确的?倾向于“说法1”。寻址方式的编码位数决定了寻址模式的个数,不同组合超出了这个范围,只能按照当时设计人员的想法将它们排序,优先选用更常用的模式了。不幸的是,内存到内存的操作落选了,虽然现在看起来还是有不少的需求的;但实际上确实远不如其它的寄存器和寄存器/内存间的几率大。
段重叠的问题,这是 16 位实模式下的吧。由于 EA=SEG*16+OFF,所以一个地址 EA 就可能有许多不同的 SEG 和 OFF 的组合;必然 EA=20000=2000:0000=1fff:0010 之类。不同的段可能指向同一内存空间,所以确实会发生冲突,这就是这种内存模式的脆弱甚至是要命之处,所以 dos 是非常容易崩溃的。后来的保护模式就有改进了,内存段有大小和访问控制,轻易不会被冲突,系统也因此强壮了许多。