[bo][un]newyj[/un] 在 2008-10-9 23:15 的发言:[/bo]
逻辑段的开始地址必须是16位的倍数?
逻辑段的最大长度为64K?
能否解释 一下 谢谢
怎么说好呢?
段地址必须是16位的倍数,这应该是由寄存器造成的.因为,物理地址是20位的,而寄存器是16位的,装不下.只好先右移一位,再装入寄存器.
反过来,将段寄存器中的段地址换算成物理地址前,要先左移一位.所以,必须是16位的倍数,否则这一右移左移的,就把低于16位的给去掉了,最终是寻不到正确的地址.
最大为什么是64K?问题还是在寄存器上.我们有了段地址寄存器,还要有个放偏移地址的寄存器,而放偏移地址的寄存器是16位的,它所能表达的最大值就是64K .