回答
它指的是非常古老的16位内存模型的概念。 32bit & 64位计算机对这些内存模型一无所知。
因此回到您的问题:小 - 声明指针允许您只处理64k的数据或代码。指针长度为16位。整个程序都在单个64k段中。要显式地寻址另一部分内存,你需要显式地将指针声明为FAR。大 - 声明指向代码或数据的指针有32位,所以默认为FAR。
希望你不会在这些问题上持续这么久,因为它是过时的概念。
32位和64位x86机器知道大约16位内存模型,但很少有人运行一个操作系统,可以让你在当今时代访问它。 – kusma
@kusma不,他们没有。要运行纯粹的16位应用程序类似NT的窗口需要启动所谓的WoW(Windows上的窗口)。 16位和32位内存模型之间的强大差异 - 被称为“32位保护模式”或平面模型。 – Dewfy
机器可以,否则你将无法启动,因为CPU在BIOS屏幕后以16位实模式启动。 WoW是纯粹的Windows构造(请参阅http://en.wikipedia.org/wiki/Windows_on_Windows),并且在CPU切换到64位模式后发生。 平面记忆模型和真实模式之间的差异并不完全是您所想的。在进入保护模式时,将x86 CPU保留在16位模式是完全可能的。事实上,保护模式被添加到286(见http://en.wikipedia.org/wiki/Protected_mode#The_286),它是一个16位的CPU。 – kusma
8086处理器有奇怪的20位寻址使用16位段寄存器和16位偏移量的组合。为了简化这一点,您可以将这两个指令打包在一个32位FAR
指针中,或者您可以使用缺省的segmet寄存器并将低16位存储在NEAR
指针中。
small
和large
型号之间的区别仅仅在于,如果未明确指定,指针默认为NEAR
或FAR
。
- 1. 小内存模型和中型内存模型有什么区别?
- 2. 操作系统中的用户模式和内核模式有什么区别?
- 3. 内核和用户模式编程有什么区别?
- 4. DAO和DP模式有什么区别?
- 5. “::”和“sys”模式有什么区别?
- 6. Factory和Strategy模式有什么区别?
- 7. Oracle和Microsoft模式有什么区别?
- 8. 内存竞技场和内存分配器有什么区别?
- 9. 内存竞技场和内存池之间有什么区别?
- 10. sudo模式和内核模式有区别吗?
- 11. IIS 8.0中内核模式和用户模式缓存之间的区别
- 12. 享元模式和对象池模式有什么区别?
- 13. 设计模式和架构模式有什么区别?
- 14. 开发模式和生产模式有什么区别?
- 15. wsdl模式和非wsdl模式Web服务有什么区别?
- 16. IE11兼容模式和IE10兼容模式有什么区别
- 17. 睡眠模式和深度睡眠模式有什么区别?
- 18. MD5二进制模式和文本模式有什么区别?
- 19. Builder模式和Flyweight模式有什么区别?
- 20. 内存内容模式
- 21. cpu缓存和内存缓存有什么区别
- 22. OpenCL中本地和全局内存区别有什么区别?
- 23. 内核模式和内存保护
- 24. 存储库模式和DAL没有存储库模式的DAL中的区别?
- 25. 用户模式和内核模式之间的共享内存
- 26. IPC与共享内存的共享内存有什么区别?
- 27. Android内存管理与Linux内存管理有什么区别?
- 28. 在UIImage的内存大小和它的NSData之间有什么区别吗?
- 29. GPU中共享内存和L1缓存有什么区别?
- 30. ASP.net实例模式有什么区别?
这是过时的术语......你在写DOS程序吗? –
http://en.wikipedia.org/wiki/C_memory_model – Paolo