首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小内存模型和中内存模型有什么不同?

小内存模型和中内存模型有什么不同?
EN

Stack Overflow用户
提问于 2012-08-15 22:49:31
回答 1查看 6.3K关注 0票数 2

维基百科和其他资源描述了可供x86平台上的编译器使用的different memory models (实数模式)。

我可以看到微型模型和小型模型之间的区别(在微型模型中,代码、堆栈和数据段寄存器指向相同的段,在小型CS中,代码、堆栈和数据段寄存器指向一个段,SS和DS指向另一个段),以及小型和紧凑模型之间的差异(CS、SS和DS指向三个独立的段),但是我无法理解小型和中型之间的区别,因为在两个CS中,CS指向一个段,SS和DS指向另一个段。

我意识到媒体模型是为具有多个代码段的程序设计的,但是这种差异是如何实现的呢?它到底改变了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-16 00:57:34

从Turbo C++内置帮助(菜单:选项->编译器->代码生成...->模型,按F1)

Small

对于中等大小的应用程序,请使用小型模型。

代码和数据段是不同的,不会重叠,因此您有64K的代码和64K的数据和堆栈。总是使用近邻指针。

Medium

medium模型最适合不会在内存中保留太多数据的大型程序。

远指针用于代码,但不用于数据。因此,数据加堆栈限制为64K,但代码最多可占用1MB。

所以,现在你就知道了。在中等模型中,您使用远指针来访问代码(代码具有远调用和远返回指令,并使用远函数指针进行操作),并且您可以有多个段。标准的16位DOS .EXE文件格式支持多个段。在小模型中,所有的指针都很接近,所以你不能也不能改变程序中的默认代码段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11971579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档