***.M51文件详细注释
;说明:这是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文件详细注释的更多相关文章
- PIC16F877A.H头文件详细注释
/* * Header file for the Microchip * PIC 16F873A chip * PIC 16F874A chip * PIC 16F876A chip * PIC 1 ...
- Qt5_简易画板_详细注释
代码下载链接: http://pan.baidu.com/s/1hsc41Ek 密码: 5hdg 显示效果如下: 代码附有详细注释(代码如下) /*** * 先新建QMainWindow, 项目名称 ...
- 一套强大的vim配置文件+详细注释
phpchina折腾王独家配置,灰常牛叉的一套vim配置,另附有详细注释,自己折腾vim的时候可以参照其中的大部分设置进行一些个性化定制."是否兼容VI,compatible为兼容,noco ...
- dedecms首页入口的详细注释
今天闲来无事,就拿来dede首页的文件给大家详细解释一遍,以便于新手学习,注释过程非常非常非常的详细,里面解释到dede表前缀#@__代替的原理.解释到dede很多自定义函数的具体位置和具体作用等等疑 ...
- /etc/rc.d/init.d/functions文件详细分析
/etc/rc.d/init.d/functions文件详细分析 functions这个脚本是给/etc/init.d里边的文件使用的(可理解为全局文件). 提供了一些基础的功能,看看里边究竟有些什么 ...
- C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式
C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...
- TP框架主要文件夹注释
TP框架主要文件夹注释 common -> 函数库目录 conf -> 配置文件目录lang -> 语言包librang -> 核心资源库 behacior -> 行为目 ...
- Altium Designer 导出Gerber文件详细教程
Altium Designer 导出Gerber文件详细教程 1.用Altium打开需要导出Gerber文件的PCB: 2.点击“File”-“fabricatio Outputs ” “Gerb ...
- 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...
随机推荐
- 《Programming WPF》翻译 第7章 3.笔刷和钢笔
原文:<Programming WPF>翻译 第7章 3.笔刷和钢笔 为了在屏幕上绘制一个图形,WPF需要知道你想要为图形填充什么颜色以及如何绘制它的边框.WPF提供了一些Brush类型支 ...
- kibana 访问IP分布图
- 2015第14周五Tomcat版本
首先看tomcat官方文档,列出的不同版本的主要差别: Servlet Spec JSP Spec EL Spec WebSocket Spec Apache Tomcat version Actua ...
- Tomcat查看用户名密码
在非安装版的tomcat中,可以在{解压路径}/conf/tomcat_users.xml 配置文件中找到,也可以自己添加新的用户
- Hdu3714-Error Curves(三分)
Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a m ...
- 第06讲- DDMS中logcat的使用
1.DDMS使用 )Device选项卡 Device中罗列了Emulator中所有的进程,选项卡右上角那一排按钮分别为:调试进程.更新进程.更新进程堆栈信息.停止某个进程. )Threads选项卡 ...
- JS~Boxy和JS模版实现一个标准的消息提示框
面向对象的封装 面向对象一个入最重要的特性就是“封装”,将一些没有必要公开的方法和属性以特定的方式进行组装,使它对外只公开一个接口,外界在调用它时,不需要关注它实现的细节,而只要关注它的方法签名即可, ...
- java public protect default private
(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. (2)对于protected修 ...
- 解决jquery和其他库的冲突
一.jquery在其他库之后导入 (1)jQuery.noConflict(); //将变量的$控制权转交给其他库. jQuery(function(){ ...
- Android零碎知识点总结
1 简单的跨进程通信可以用Messenger类,不用AIDL. 2 当一个Service没有action时,它默认是exported="false"的,其它进程用它的包名和类名构造 ...