找回密码
 立即注册
楼主: wuzhengmin

跟着何宾老师学习STC32位8051单片机原理及应用-STC32G12K128

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 14:57:14 | 显示全部楼层
定位到\stc32_example\example_3_1\Listings目录下,打开main.lst文件:

截图202511171457124473.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 14:59:19 | 显示全部楼层
main.Ist文件


看反汇编,翻译的多好!



截图202511171458307868.jpg
截图202511171458408200.jpg
截图202511171459146033.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 15:01:20 | 显示全部楼层
也会生成demo.map文件

这里比较难懂是存储器映射:


截图202511171500129698.jpg
截图202511171500305447.jpg
截图202511171501065783.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 15:04:04 | 显示全部楼层
注意L251选项:
EDATE和HDATA 的位置
截图202511171503013366.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 15:07:56 | 显示全部楼层
我们先确定listing 选项


我们严格和何老师一样:


截图202511171507537230.jpg
截图202511171508536777.jpg
截图202511171509022256.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 15:15:25 | 显示全部楼层
要读懂编译连接的过程提示信息:
截图202511171515235280.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 15:58:09 | 显示全部楼层
查看生成的文件
目标文件:
截图202511171558074419.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 16:03:51 | 显示全部楼层
  1. C251 COMPILER V5.60.0,  main                                                               17/11/25  16:06:10  PAGE 1   
  2. C251 COMPILER V5.60.0, COMPILATION OF MODULE main
  3. OBJECT MODULE PLACED IN .\Objects\main.obj
  4. COMPILER INVOKED BY: C:\Keil_v5\C251\BIN\C251.EXE main.c XSMALL INTR2 BROWSE DEBUG CODE LISTINCLUDE SYMBOLS PRINT(.\List
  5.                     -ings\main.lst) OBJECT(.\Objects\main.obj)
  6. stmt  level    source
  7.     1          sfr P4 = 0xc0;          //P4端口地址映射
  8.     2          sfr P4M1 = 0xb3;        //P4端口配置端口地址映射
  9.     3          sfr P4M0 = 0xb4;                //P4端口配置端口地址映射
  10.     4          sfr P6 = 0xe8;                  //P6端口地址映射
  11.     5          sfr P6M1 = 0xcb;                //P6端口配置端口地址映射
  12.     6          sfr P6M0 = 0xcc;                //P6端口配置端口地址映射
  13.     7         
  14.     8          void main()
  15.     9          {
  16.    10   1              unsigned volatile long i;
  17.    11   1              P4M0 = 0X00;
  18.    12   1              P4M1 = 0X00;                                    //设置P4为准双向端口模式
  19.    13   1              P6M0 = 0X00;
  20.    14   1              P6M1 = 0X00;                                    //设置P6为准双向端口模式        
  21.    15   1              P4 = 0;                                             //P4端口赋值为0,打开led灯总开关
  22.    16   1              while (1)
  23.    17   1              {
  24.    18   2              P6=0x00;                                                      //P6赋值为低,点亮所有led灯
  25.    19   2              //for(i=0;i<100000UL;i++);//计数延时,调试时,去掉该行代码。
  26.    20   2              P6=0xFF;
  27.    21   2              //for(i=0;i<100000UL;i++);//计数延时,调试时,去掉该行代码。
  28.    22   2              }
  29.    23   1      }
  30. *** WARNING C47 IN LINE 10 OF main.c: 'i': unreferenced local variable
  31.    24         
  32. C251 COMPILER V5.60.0,  main                                                               17/11/25  16:06:10  PAGE 2   
  33. ASSEMBLY LISTING OF GENERATED OBJECT CODE
  34. ;       FUNCTION main (BEGIN)
  35.                                                 ; SOURCE LINE # 8
  36.                                                 ; SOURCE LINE # 9
  37.                                                 ; SOURCE LINE # 11
  38. 000000 75B400         MOV      P4M0,#00H
  39.                                                 ; SOURCE LINE # 12
  40. 000003 75B300         MOV      P4M1,#00H
  41.                                                 ; SOURCE LINE # 13
  42. 000006 75CC00         MOV      P6M0,#00H
  43.                                                 ; SOURCE LINE # 14
  44. 000009 75CB00         MOV      P6M1,#00H
  45.                                                 ; SOURCE LINE # 15
  46. 00000C 75C000         MOV      P4,#00H
  47.                                                 ; SOURCE LINE # 16
  48.                ?C0003:
  49.                                                 ; SOURCE LINE # 18
  50. 00000F 75E800         MOV      P6,#00H
  51.                                                 ; SOURCE LINE # 20
  52. 000012 75E8FF         MOV      P6,#0FFH
  53.                                                 ; SOURCE LINE # 22
  54. 000015 80F8           SJMP     ?C0003
  55. ;       FUNCTION main (END)
  56. C251 COMPILER V5.60.0,  main                                                               17/11/25  16:06:10  PAGE 3   
  57. Name                                    Class    Space Type   Offset   Size
  58. ---------------------------------------------------------------------------
  59. P6 . . . . . . . . . . . . . . . . . .  sfr      data  uchar  0E8H     1
  60. P6M1 . . . . . . . . . . . . . . . . .  sfr      data  uchar  0CBH     1
  61. P4 . . . . . . . . . . . . . . . . . .  sfr      data  uchar  0C0H     1
  62. P6M0 . . . . . . . . . . . . . . . . .  sfr      data  uchar  0CCH     1
  63. P4M1 . . . . . . . . . . . . . . . . .  sfr      data  uchar  0B3H     1
  64. P4M0 . . . . . . . . . . . . . . . . .  sfr      data  uchar  0B4H     1
  65. main . . . . . . . . . . . . . . . . .  public   code  funct  000000H  23
  66. Module Information          Static   Overlayable
  67. ------------------------------------------------
  68.   code size            =        23     ------
  69.   ecode size           =    ------     ------
  70.   data size            =    ------     ------
  71.   idata size           =    ------     ------
  72.   pdata size           =    ------     ------
  73.   xdata size           =    ------     ------
  74.   xdata-const size     =    ------     ------
  75.   edata size           =    ------     ------
  76.   bit size             =    ------     ------
  77.   ebit size            =    ------     ------
  78.   bitaddressable size  =    ------     ------
  79.   ebitaddressable size =    ------     ------
  80.   far data size        =    ------     ------
  81.   huge data size       =    ------     ------
  82.   const size           =    ------     ------
  83.   hconst size          =    ------     ------
  84. End of Module Information.
  85. C251 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)
复制代码

我们看看list文件的内容:
截图202511171603496282.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 16:19:52 | 显示全部楼层
每个模块的地址,和最后的可执行文件的地址,是不同的,最终的地址是:

截图202511171619482407.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-17 16:31:33 | 显示全部楼层
接着看第二个demo.map文件
页面标题
每个列表页面都包含一个标题,其中包含链接器版本号、日期和页码:

demo.map-记事本
  1. L251 LINKER/LOCATER V4.66.93.0                                                          11/17/2025  16:06:10  PAGE 1
  2. L251 LINKER/LOCATER V4.66.93.0, INVOKED BY:
  3. C:\KEIL_V5\C251\BIN\L251.EXE .\Objects\main.obj TO .\Objects\demo PRINT (.\Listings\demo.map) CASE CLASSES (EDATA (0X0-0
  4. >> XFFF), HDATA (0X0-0XFFF))
  5. CPU MODE:     251 SOURCE MODE
  6. MEMORY MODEL: XSMALL
  7. INPUT MODULES INCLUDED:
  8.   .\Objects\main.obj (main)
  9.          COMMENT TYPE 0: C251 V5.60.0
  10.   C:\KEIL_V5\C251\LIB\C2SXS.LIB (?C_START)
  11.          COMMENT TYPE 0: A251 V4.69.6.0
  12. ACTIVE MEMORY CLASSES OF MODULE:  .\Objects\demo (main)
  13. BASE        START       END         USED      MEMORY CLASS
  14. ==========================================================
  15. 000000H     000000H     000FFFH     000100H   EDATA
  16. 000000H     000000H     000FFFH               HDATA
  17. FF0000H     FF0000H     FFFFFFH     000030H   CODE
  18. 000000H     000000H     00007FH     000008H   DATA
  19. MEMORY MAP OF MODULE:  .\Objects\demo (main)
  20. START     STOP      LENGTH    ALIGN  RELOC    MEMORY CLASS   SEGMENT NAME
  21. =========================================================================
  22. 000000H   000007H   000008H   ---    AT..     DATA           "REG BANK 0"
  23. 000008H   000107H   000100H   BYTE   UNIT     EDATA          ?STACK
  24. 000108H   FEFFFFH   FEFEF8H   ---    ---      **GAP**
  25. FF0000H   FF0002H   000003H   ---    OFFS..   CODE           ?CO?start251?4
  26. FF0003H   FF0019H   000017H   BYTE   INSEG    CODE           ?PR?MAIN?MAIN
  27. FF001AH   FF002CH   000013H   BYTE   UNIT     CODE           ?C_C51STARTUP
  28. FF002DH   FF002FH   000003H   BYTE   UNIT     CODE           ?C_C51STARTUP?3
  29. OVERLAY MAP OF MODULE:   .\Objects\demo (main)
  30. FUNCTION/MODULE              BIT_GROUP   DATA_GROUP
  31. --> CALLED FUNCTION/MODULE  START  STOP  START  STOP
  32. ====================================================
  33. ?C_C51STARTUP               ----- -----  ----- -----
  34. *** NEW ROOT **************
  35. ?C_C51STARTUP?3             ----- -----  ----- -----
  36.   +--> main/main
  37. main/main                   ----- -----  ----- -----
  38. PUBLIC SYMBOLS OF MODULE:  .\Objects\demo (main)
  39.       VALUE       CLASS    TYPE      PUBLIC SYMBOL NAME
  40.       =================================================
  41.       000000FFH   NUMBER   ---       ?C?CODESEG
  42.       00FF0000H   CODE     ---       ?C?STARTUP
  43.       00000001H   NUMBER   ---       ?C?XDATASEG
  44. L251 LINKER/LOCATER V4.66.93.0                                                        11/17/2025  16:06:10  PAGE 2
  45.       00FF0000H   CODE     ---       ?C_STARTUP
  46.       00FF0003H   CODE     ---       main
  47. *SFR* 000000C0H   DATA     BYTE      P4
  48. *SFR* 000000B4H   DATA     BYTE      P4M0
  49. *SFR* 000000B3H   DATA     BYTE      P4M1
  50. *SFR* 000000E8H   DATA     BYTE      P6
  51. *SFR* 000000CCH   DATA     BYTE      P6M0
  52. *SFR* 000000CBH   DATA     BYTE      P6M1
  53. SYMBOL TABLE OF MODULE:  .\Objects\demo (main)
  54.       VALUE       REP       CLASS    TYPE      SYMBOL NAME
  55.       ====================================================
  56.       ---         MODULE    ---      ---       main
  57.       00FF0003H   PUBLIC    CODE     ---       main
  58.       000000E8H   SFRSYM    DATA     BYTE      P6
  59.       000000CBH   SFRSYM    DATA     BYTE      P6M1
  60.       000000C0H   SFRSYM    DATA     BYTE      P4
  61.       000000CCH   SFRSYM    DATA     BYTE      P6M0
  62.       000000B3H   SFRSYM    DATA     BYTE      P4M1
  63.       000000B4H   SFRSYM    DATA     BYTE      P4M0
  64.       00FF0003H   BLOCK     CODE     ---       LVL=0
  65.       00FF0003H   LINE      CODE     ---       #8
  66.       00FF0003H   LINE      CODE     ---       #9
  67.       00FF0003H   LINE      CODE     ---       #11
  68.       00FF0006H   LINE      CODE     ---       #12
  69.       00FF0009H   LINE      CODE     ---       #13
  70.       00FF000CH   LINE      CODE     ---       #14
  71.       00FF000FH   LINE      CODE     ---       #15
  72.       00FF0012H   LINE      CODE     ---       #16
  73.       00FF0012H   LINE      CODE     ---       #18
  74.       00FF0015H   LINE      CODE     ---       #20
  75.       00FF0018H   LINE      CODE     ---       #22
  76.       ---         BLOCKEND  ---      ---       LVL=0
  77.       ---         MODULE    ---      ---       ?C_START
  78.       00FF0000H   PUBLIC    CODE     ---       ?C?STARTUP
  79.       00FF0000H   PUBLIC    CODE     ---       ?C_STARTUP
  80. Program Size: data=8.0 edata+hdata=256 xdata=0 const=0 code=48
  81. L251 RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
复制代码
实际是连接器完成连接后生成的文件
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-4-1 02:43 , Processed in 0.111778 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表