凡亿专栏 | ​如何理解Keil的内存分配现象?
​如何理解Keil的内存分配现象?

不管是哪种汇编语言,内存分配语毫无疑问是学习难点,但内存分配有助于工程师更好了解设计电路,对电路硬件有一定的了解,所以我们今天以Keil语言为例,详细谈谈Keil语言的内存分配现象,希望对小伙伴们有所帮助。

1.png

在keil中,定义变量时要注意是定义在哪一区域的,系统默认为直接寻址DATA区,但DATA区只有128个字节,很容易用完和溢出。51单片机超出128个字节的RAM区定义变量时一定要在变量前加IDATA,这样表明该变量时IDATA区(128—256之间的RAM区)。

遇到逻辑变量可定义到bdata中,可以大大降低内存占用空间(如bdata bit flag)。

对于不频繁用到和对速度要求不高的放在xdata区中。

如果想节省data空间,必须用large模式,将未定义内存位置的变量全放在data区(当然最好所有变量都应指定内存类型)。

但使用指针时,要指定指针指向类型。在C51中为定义指向内存类型的通用指针占用3各字节,二指向data区的指针只占用1个字节,指向xdata区的指针占2个字节(如:p指向data区  char data *p;)。还可以指定指针本身的存放内存类型,如:char data *xdata p 其含义是指针p指向data区变量,而其本身放在xdata区。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论