老鱼的博客
老鱼平常经常会纪录一些笔记,其中一部分放在这里,希望对大家有所帮助。
马上订阅 老鱼的博客 RSS 更新: https://hgoldfish.com/blogs/rss/articles.xml
DOS 内存粗解
2022年10月18日 15:32
LinuxApp
今天搞明白了,为啥 dos 有个 A20 地址线,以及 DOS 所谓高位内存的技术了。原因出在那个段地址的计算上面,经常看到的段的计算方式,实际上不止可以访问到 1M 的内存,而是 1M 再多一些:
0xffff * 16 + 0xffff
可以访问到比 1M 高一点的 64k 内存。实际上不是 64k,而是 64k-16 字节。因为 ffff:0010 就是 1M
比较早的 DOS 程序,会利用 8086 的 bug,访问这段内存实际上是访问 0000:0000 这一段内存。后来 80286 出现,这个 bug 就失效了。
由此引申出 DOS 内存的几个概念。