• 【日拱一卒行而不辍20220930】自制操作系统


    存储器模式

    普林斯顿结构的特点是微机只有一个地址空间,ROM和RAM地址统一编址,一个地址对应唯一的一个地址单元,CPU访问ROM和RAM使用的是相同的访问指令。

    哈佛结构的特点是微机的ROM和RAM被分别安排在两个不同的地址空间,ROM和RAM可以有相同的地址,CPU访问ROM和RAM使用的是不同的访问指令。

    51单片机采用哈佛结构。

    C51单片机定义变量时,如果省略存储器类型,KeilC51编译系统会按编译模式SMALL、COMPACT、LARGE所规定的默认存储器类型去指定变量的存储区域,无论什么存储模式都可以声明变量在任何的8051存储区范围,但是把最常用的命令如循环计数器和队列索引放在内部数据区可以显著提高系统性能。

    SMALL模式

    本模式中所有变量在缺省情况下位于8051系统的内部存储区(这和用data存储类型标识符明确声明一样)

    本模式中变量访问数据最快,然而所有的东西包括堆栈必须放在内部RAM中,堆栈的大小是不确定的,它取决于嵌套的深度。

    在写小型应用程序时,变量和数据放在Data内部数据存储器中是很好的,因为访问速度快,但在较大的程序中Data区最好只放小的变量、数据或常用的变量(如循环计数、数据索引),而大的数据则放在别的存储区域,否则Data区就容易溢出。

    COMPACT模式

    本模式把变量都定位在MCS-51系统的外部数据存储器中,外部数据存储段可有最多256字节。这时对变量的访问是通过寄存器间接寻址(MOV @Ri)进行的。

    采用这种编译模式时,变量的高8位地址由P2口确定,因此必须适当改变启动程序STARTUP.A51中的参数PDATASTARTPDATALEN,用L51进行连接时还必须采用连接控制命令PDATA来对P2口地址进行定位,这样才能确保P2口为所需的高8位地址。

    编程比较复杂。

    LARGE模式

    本模式中,所有的函数和过程的变量以及局部变量数据段都被定义在51系统的外部数据存储器中,外部数据存储器最多可有64K,这要求用DPTR数据指针来间接访问数据,因此访问效率并不高,尤其是对2个或多个字节的变量,用这种模式访问数据程序的代码将会很大。

  • 相关阅读:
    Vue3后台管理系统推荐
    Error: svn: E155004: Run ‘svn cleanup‘ to remove locks
    【算法篇-搜索与图论】适合算法入门小白理解的深度优先搜索(DFS )以及解决全排列数字
    【JAVA程序设计】基于SSM(非maven)的停车位租赁管理系统
    nlp中如何数据增强
    理解OAuth2.0协议和授权机制
    C函数使用
    机器视觉 光源
    2022年最火的十大测试工具,你掌握了几个
    1.32 Cubemx_STM32F429串口中断+空闲中断
  • 原文地址:https://blog.csdn.net/bear_miao/article/details/127130295