uliana lopatkina 退役:请教一个编译方面的问题!!!

来源:百度文库 编辑:中科新闻网 时间:2024/04/24 23:15:30
我最近正在看一款嵌入式的实时操作系统叫(uc/os-II).里面要求代码在C编译器的大模块方式下编译,我不知道什么叫大模块方式,为什么要用大模块方式!我以前写C语言小程序编译的时候也没选过什么编译方式啊!! 请高手指导,万分感谢哈!
进一步问一下!在一般的多任务操作系统中,应用程序进入系统,操作系统会给他分配一个内存空间;但是现在我是在做操作系统,我想知道我是怎么样获得内存空间的!谢谢

微存贮模式 数据和代码段放置在同一段中,即它们不超过64K,在该模式下代码段、数据段、堆栈段段地址均相同,即CS=DS=SS=ES。指针为near型。编译的.EXE可用DOS中的EXE2BIN转换成.COM程序。一般程序均为该状态。
小存贮模式 代码放在64K的代码段中,数据放在64K的数据段中。栈段、附加数据段与数据段同一段地址。即DS=SS=ES。指针为near型。
标准模式 数据放在64K段内,数据段内使用near指针。代码量可以大于64K(允许达到1M),因此可以分布在不同的代码段内,代码段使用far指针。该模式适用于大代码量,小数据量的大程序。
紧凑存贮模式 数据量可超过64K,数据段内采用far指针寻址。代码量不超过64K,代码段内采用near指针寻址。但在该模式下,静态数据任不能超过64K,堆使用far指针存取。
大存贮模式 代码和数据均可采用far指针,两者均可达到1MB,但静态数据仍不能超过64K。
特大存贮模式 代码段和数据段内均采用far指针,代码和数据均可分布在不同的段内,他们来自于不同的源程序,但堆栈段只有一个。Turbo C一般限制静态数据不超过64K,但该模式下允许超过64K。