几个内存方面的问题

sundy0104 2007-10-24 07:36:58
8086上支持的内存最大寻址空间是1M,而且是处在实模式的,那么能不能运行大小超过1M的程序呢。
如果8086上插的内存条只有512k,那么,内存的实际寻址空间是不是也只有512k呢,如果有程序超过512k但是小于1M是不是也不能执行了。

...全文
167 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
asmst 2007-10-26
  • 打赏
  • 举报
回复
可以运行超过1M的程序,肯定不是一次都加载进内存的,有硬盘呀,以前内容资源不丰富的时候,经常这样做。
把要运行的部分装入内存,不用的部分及时搬出内存,效率低很多呀。

在8086模式下,没有虚拟内存机制,如果只有512k内存,却要访问512~1M之间的空间我个人认为会导致处理器的内部硬件错误,类似现在的SEGMENT FAULT,但处理机制肯定不一样。
dongyi940333 2007-10-26
  • 打赏
  • 举报
回复
学习中!!!
alan001 2007-10-26
  • 打赏
  • 举报
回复
使用内存覆盖技术的Dos程序可以>1M
czlyc006 2007-10-25
  • 打赏
  • 举报
回复
在实模式下不存在虚拟内存机制,故寻址超出了物理内存的地址范围自然会产生异常。
alan001 2007-10-25
  • 打赏
  • 举报
回复
单个代码段,只有64kB=16位偏移地址范围=2^6*2^10=2^6KB

除非多代码段混合Link

一般的程序包括64k数据段和堆栈段,可以1M左右..........

以上讲的是DOS

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧