;说明:这是1950编译后生成的Keil_1910.M51文件,以此为例来讲解M51文件

                                                        //  ::  PAGE 

BL51 BANKED LINKER/LOCATER V6., INVOKED BY:
.obj TO Keil_1910 RAMSIZE () STACK (?STACK (0080H))

MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC

INPUT MODULES INCLUDED:
  1910base.obj (PROC1910)
  .obj ()
  C:\KEIL\C51\LIB\C51FPS.LIB (?C?FPADD)
  ………………………………  ;省略类同部分
  C:\KEIL\C51\LIB\C51S.LIB (?C?LSTPDATA)

LINK MAP OF MODULE:  Keil_1910 (PROC1910)

;           存储器数据分配情况
;           类型    起始地址    长度       类型           段名
            TYPE    BASE      LENGTH    RELOCATION   SEGMENT NAME
            -----------------------------------------------------

            * * * * * * *   D A T A   M E M O R Y   * * * * * * *  ; 内部数据内存区分配情况,REG代表是常规寄存器,
            REG     0000H     0008H     ABSOLUTE     "REG BANK 0"  ; 寄存器类型,从0000H开始,0008H个字节,绝对定位,寄存器BANK0
            REG     0008H     0008H     ABSOLUTE     "REG BANK 1"  ; 寄存器类型,从0000H开始,0008H个字节,绝对定位,寄存器BANK1
            DATA    0010H     0006H     UNIT         ?DT?1910

BL51 BANKED LINKER/LOCATER V6.                                                      //  ::  PAGE 

            DATA    0016H     0005H     UNIT         ?DT?_WRITESLITPARAMETER?1910    ;DATA代表是DATA型数据,可访问地址范围0-128,或者在 128 .. 255 范围内的一个特殊功能寄存器(SFR),以直接寻址方式操作
            DATA    001BH     0004H     UNIT         ?DT?_READSLITPARAMETER?1910
                    001FH     0001H                  *** GAP ***                     ;代表空余,未用
            DATA    0020H     0001H     BIT_ADDR     ?BA?1910
            BIT     0021H.   0001H.   UNIT         ?BI?1910                        ;BIT代表可以位操作的数据,是在内部数据存储空间中 20H .. 2FH 区域中一个位的地址,或者 8051 位可寻址 SFR 的一个位地址。
            BIT     0022H.   0000H.   UNIT         _BIT_GROUP_
            DATA    0023H     002DH     UNIT         _DATA_GROUP_
            IDATA   0050H     001FH     UNIT         _IDATA_GROUP_                   ;IDATA是可访问地址范围 0 to 255 内的数据,以间接寻址方式操作,速度略慢于DATA型数据
            IDATA   006FH     0006H     UNIT         ?ID?1910
                    0075H     000BH                  *** GAP ***
            IDATA   0080H     0001H     UNIT         ?STACK                          ;堆栈区,8051压栈的方式是向上增长,可绝对定位

            * * * * * * *  X D A T A   M E M O R Y  * * * * * * *                    ;外部数据内存分配情况,XDATA表示数据存放在外部数据存储器上
            XDATA   0000H     0065H     UNIT         ?XD?1910                        ;XDATA是存放在外部数据存储器上的数据,可访问地址范围0-65535,速度最慢
            XDATA   0065H     000CH     UNIT         _XDATA_GROUP_

            * * * * * * *   C O D E   M E M O R Y   * * * * * * *                    ;程序存储器分配情况,CODE代表是的程序指令
            CODE    0000H     0003H     ABSOLUTE
            CODE    0003H     0005H     UNIT         ?PR?RESETWATCHDOGTIMER?1910
                    0008H     0003H                  *** GAP ***
            CODE    000BH     0003H     ABSOLUTE
            ………………………… ;省略类同部分
            CODE    000EH     0011H     UNIT         ?PR?_XWRITEPOINTER?1910
            CODE    5846H     0039H     UNIT         ?PR?_READPORT?1910
            CODE    587FH     0031H     UNIT         ?PR?_X5045_WRITE?1910
            CODE    58B0H     0030H     UNIT         ?PR?X5045_READ?1910
            CODE    58E0H     002CH     UNIT         ?PR?INITSYSTEM?1910
            CODE    590CH     002CH     UNIT         ?PR?_XOUTBYTE?1910
            CODE    5938H     0028H     UNIT         ?PR?XINBYTE?1910
            CODE    5960H     0025H     UNIT         ?PR?_XREADCHAR?1910
            CODE    5985H     0020H     UNIT         ?PR?READSERIALADDRESS?1910
            CODE    59A5H     0020H     UNIT         ?CO?1910
            CODE    59C5H     0017H     UNIT         ?PR?SETWRITESTATE?1910
            CODE    59DCH     000CH     UNIT         ?PR?GETWIPSTATE?1910
            CODE    59E8H     000CH     UNIT         ?PR?_ABS?ABS

OVERLAY MAP OF MODULE:   Keil_1910 (PROC1910)

;以下是各函数中的数据分配情况
;段名                                       位操作数据起址地址      DATA数据             IDATA数据           XDATA数据
SEGMENT                                       BIT_GROUP          DATA_GROUP          IDATA_GROUP         XDATA_GROUP
  +--> CALLED SEGMENT                      START    LENGTH     START    LENGTH     START    LENGTH     START    LENGTH
----------------------------------------------------------------------------------------------------------------------
?C_C51STARTUP                              -----    -----      -----    -----      -----    -----      -----    -----
  +--> ?PR?MAIN?1910
  +--> ?C_INITSEG

; main()函数中数据使用情况(下面是调用的函数列表)
?PR?MAIN?1910                              -----    -----      0023H    0001H      -----    -----      -----    -----
  +--> ?PR?INITSYS?1910
  +--> ?PR?SENDBACKACCUMULATEERROR?1910
  +--> ?PR?INSTRECEIVEOK?1910
  +--> ?PR?EXECUTEINSTRUCTION?1910
  +--> ?PR?RESETWATCHDOGTIMER?1910
…………………………………;省略类同部分

;以下是变量、常量和寄存器等的存储位置分配

SYMBOL TABLE OF MODULE:  Keil_1910 (PROC1910)

;地址            类型          名称
  VALUE           TYPE          NAME
  ----------------------------------
  -------         MODULE        PROC1910
  C:55B0H         SEGMENT       ASMFUNCTIONS              ;C:55B0H--C代表是在Code区,即存在程序存储器(ROM)上,55B0H是地址
  C:55C1H         PUBLIC        DETERMINEBAUDRATE
  ……………………………………;省略类同部分
  D:00A8H         SYMBOL        IE                        ;D代表DATA型数据,存在RAM上0-127之间,或者在 128 .. 255 范围内的一个特殊功能寄存器(SFR),
  ……………………………………;类同部分省略
  N:0000H         SYMBOL        PROC1910
  ……………………………………;
         SYMBOL        TR0                       ;B代表可以位寻址的数据或寄存器
         SYMBOL        TR1
  ……………………………………;
  C:0000H         SYMBOL        _ICE_DUMMY_
  X:0000H         PUBLIC        LampMotorCurrentPhase     ;X代表存放在外部存储器XRAM区的数据
  C:4E55H         PUBLIC        SendBack
  …………………………………;
  C:0026H         PUBLIC        ExecuteInstruction        ;C代表村放在CODE驱动的数据或指令
  D:00B0H         PUBLIC        P3
  C:4ADEH         PUBLIC        _ReadAD
  C:568AH         PUBLIC        InstReceiveOK
  ……………………………………;
  I:0071H         PUBLIC        ScanEndWaveLength         ;I 代表可以IDATA型数据
  …………………………………
  C:41E9H         PUBLIC        _CheckLampEnergy
  X:0049H         PUBLIC        FilterMotorCurrentPhase
  ……………………………………;省略

;以下是编译结果
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?_WRITESLITPARAMETER?1910

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?ASSIGNSLITPARAMETER?1910

Program . xdata= code=
LINK/LOCATE RUN COMPLETE.   WARNING(S),   ERROR(S)

***.M51文件详细注释的更多相关文章

  1. PIC16F877A.H头文件详细注释

    /* * Header file for the Microchip  * PIC 16F873A chip * PIC 16F874A chip * PIC 16F876A chip * PIC 1 ...

  2. Qt5_简易画板_详细注释

    代码下载链接:  http://pan.baidu.com/s/1hsc41Ek 密码: 5hdg 显示效果如下: 代码附有详细注释(代码如下) /*** * 先新建QMainWindow, 项目名称 ...

  3. 一套强大的vim配置文件+详细注释

    phpchina折腾王独家配置,灰常牛叉的一套vim配置,另附有详细注释,自己折腾vim的时候可以参照其中的大部分设置进行一些个性化定制."是否兼容VI,compatible为兼容,noco ...

  4. dedecms首页入口的详细注释

    今天闲来无事,就拿来dede首页的文件给大家详细解释一遍,以便于新手学习,注释过程非常非常非常的详细,里面解释到dede表前缀#@__代替的原理.解释到dede很多自定义函数的具体位置和具体作用等等疑 ...

  5. /etc/rc.d/init.d/functions文件详细分析

    /etc/rc.d/init.d/functions文件详细分析 functions这个脚本是给/etc/init.d里边的文件使用的(可理解为全局文件). 提供了一些基础的功能,看看里边究竟有些什么 ...

  6. C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式

    C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...

  7. TP框架主要文件夹注释

    TP框架主要文件夹注释 common -> 函数库目录 conf -> 配置文件目录lang -> 语言包librang -> 核心资源库 behacior -> 行为目 ...

  8. Altium Designer 导出Gerber文件详细教程

    Altium Designer 导出Gerber文件详细教程   1.用Altium打开需要导出Gerber文件的PCB: 2.点击“File”-“fabricatio Outputs ” “Gerb ...

  9. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释

    题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...

随机推荐

  1. 使用ownCloud搭建你的个人云服务(ubuntu 14.04 server)(ownCloud对文件不切片,Seafile对文件切片),owncloud没有存储的功能 只能同步 本地删除了服务器也会删除

    ownCloud是什么 ownCloud是一个自由且开源的个人云存储解决方案(类似百度网盘或者Dropbox),包括两个部分:服务器和客户端. ownCloud在客户端可通过网页界面,或者安装专用的客 ...

  2. PowerShell_零基础自学课程_2_Powershell与Cmd以及Unix/Linux Shell

    上篇文章我说道,windows为了改变用户对其console界面的诟病,于是就从windows   vista开始,计划要改变这种局面,于是就有 了Powershell的出现. 1.兼容shell命令 ...

  3. UML--一些图

    通过UML来表示汽车,简洁明了. 统一建模语言--UML. 参与者Actor,参与者代表了现实世界的人.人. 用例use case,就是参与者要做什么并且获得什么.事. 业务场景,用例场景.规则. 业 ...

  4. android网址

    1. 优麒麟手机助手 https://github.com/ubuntu-kylin/phone_manager 2. http://forum.xda-developers.com/index.ph ...

  5. jquery使用总结

    jquery使用总结-常用DOM操作 (1)查询或设置元素属性操作 html()   //获取匹配元素集合中的第1个元素 html(htmlString)  //为匹配集合中的所有元素设置内容 tex ...

  6. 【转】DM8168添加DSP音频编解码算法--集成现有voice或audio codec

    本文根据“How to integrate audio/voice in RPE in EZSDK.pdf”整理,建议读者直接下载,参考原文件.原文件下载链接: http://download.csd ...

  7. 一个sql很多个not like的简化语句

    如: select * from table where `zongbu` not like '%北京%' and `zongbu` not like '%上海%' and `zongbu` not ...

  8. pyqt tabWidget例子学习1

    from PyQt4 import QtGui from PyQt4 import QtCore from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT impor ...

  9. pyqt 右击+指定位置点击例子学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import sys from PyQt4.QtCore impor ...

  10. 深入理解Scala的隐式转换系统

    摘要: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码.   使用方式: 1. ...