Keil C51 953 版本更新,想下载的请尽速!连结有时效性!..

2020-01-21 21:41发布

这 Keil 又再次的将之前 C51 9.52 更新版本到 v9.53 了。喜欢尝鲜的请尽速啦!附上的连结有其时效性(不到 24 小时)!同样的也是逾时不候呦!~

连结在此 -> C51 v953.exe

What's New in C51 Version 9.53
■ [LX51 Linker/Locater]
■ Implemented: the PUBLICSONLY Linker directive.
The generated objectfile contains only public symbol information from the inputfile.
■ Enhanced: LX51 code optimization now removes common blocks for unused functions. Example:

  1. unsigned char a, b, c;
  2. unsigned char darr [0x10];

  3. void FuncA (void) {
  4.   darr[c] = darr[b];
  5. }

  6. void FuncB (void) {
  7.   darr[c] = darr[b];
  8. }

  9. void FuncC (void) {
  10.   darr[c] = darr[a] + darr[b];
  11. }

  12. void FuncD (void) {
  13.   darr[c] = darr[a] + darr[b];
  14. }

  15. void main(void) {
  16.   FuncA ();
  17.   FuncB ();
  18.   while(1);
  19. }


  20. ; FUNCTION FuncA (BEGIN)           ; FUNCTION FuncB (BEGIN)            ; FUNCTION FuncC (BEGIN)                ; FUNCTION FuncD (BEGIN)
  21.     R     MOV     A,#LOW darr          R     MOV     A,#LOW darr           R     MOV     A,#LOW darr ----- + ----- R     MOV     A,#LOW darr
  22.     R     ADD     A,b                  R     ADD     A,b                   R     ADD     A,b               |       R     ADD     A,b
  23.           MOV     R0,A     ----- + -----     MOV     R0,A                        MOV     R0,A              |             MOV     R0,A
  24.           MOV     A,@R0          |           MOV     A,@R0                       MOV     A,@R0             |             MOV     A,@R0
  25.           MOV     R7,A           |           MOV     R7,A                        MOV     R7,A              |             MOV     R7,A
  26.     R     MOV     A,#LOW darr    |     R     MOV     A,#LOW darr           R     MOV     A,#LOW darr ----- + ----- R     MOV     A,#LOW darr
  27.     R     ADD     A,c            |     R     ADD     A,c                   R     ADD     A,a               |       R     ADD     A,a
  28.           MOV     R0,A           |           MOV     R0,A                        MOV     R0,A              |             MOV     R0,A
  29.           MOV     @R0,AR7  ----- + -----     MOV     @R0,AR7                     MOV     A,@R0             |             MOV     A,@R0
  30.           RET                    |           RET                                 ADD     A,R7              |             ADD     A,R7
  31.                                  o-> Common code for FuncA and FuncB             MOV     R7,A              |             MOV     R7,A
  32.                                                                            R     MOV     A,#LOW darr       |       R     MOV     A,#LOW darr
  33.                                                                            R     ADD     A,c               |       R     ADD     A,c
  34.                                                                                  MOV     R0,A              |             MOV     R0,A
  35.                                                                                  MOV     @R0,AR7           |             MOV     @R0,AR7
  36.                                                                                  RET                       |             RET
  37.                                                                                                            o-> Common code for FuncC and FuncD
复制代码

In the example above the functions FuncC() and FuncD() are removed when the REMOVEUNUSED linker directive is specified. Now, the first part of the common code block (FUNCTION ?L?COM0001) is no longer necessary. In previous verions this was still part of the image. With the new linker enhancement even this code block is removed.

  1. ----- FUNCTION ?L?COM0001 (BEGIN) -----
  2. 000021 7408              MOV      A,#LOW darr  ---+
  3. 000023 2519              ADD      A,b             |
  4. 000025 F8                MOV      R0,A            |
  5. 000026 E6                MOV      A,@R0           |  o-> Common code for FuncC and FuncD
  6. 000027 FF                MOV      R7,A            |
  7. 000028 7408              MOV      A,#LOW darr  ---+
  8. 00002A         ?L?COM0002:
  9. 00002A F8                MOV      R0,A         ---+
  10. 00002B E6                MOV      A,@R0           |
  11. 00002C FF                MOV      R7,A            |
  12. 00002D 7408              MOV      A,#LOW darr     |  o-> Common code for FuncA and FuncB
  13. 00002F 251A              ADD      A,c             |
  14. 000031 F8                MOV      R0,A            |
  15. 000032 A607              MOV      @R0,AR7      ---+
  16. 000034 22                RET
  17. ----- FUNCTION ?L?COM0001 (END) -------
复制代码

■ [AX51 Assembler]
■ Enhanced: SEGMENT assembler statement now also supports ALIGN (1) as minimum alignment value.
■ [New Supported Devices]
■ CAST
S8051XC3.
■ Maxim
78M6613.
■ SigmaDesigns
ZM3102, ZM4102, ZM4101, and SD3402.
■ Silabs
C8051F970-A-GM, C8051F971-A-GM, C8051F972-A-GM, C8051F973-A-GM, C8051F974-A-GM, C8051F975-A-GM,
C8051F370, C8051F371, C8051F374, C8051F375,
C8051F388, C8051F389, C8051F38A, C8051F38B, C8051F38C,
C8051F390, C8051F391, C8051F392, C8051F393, C8051F394, C8051F395, C8051F396, C8051F397, C8051F398, C8051F399,
C8051F750, C8051F750B, C8051F751, C8051F751B, C8051F752, C8051F752B, C8051F755B, C8051F756B, C8051F757B,
C8051F760, C8051F761, C8051F762, C8051F765, C8051F766, C8051F767,
C8051T626, C8051T627, C8051T670, and C8051T671.
■ Texas Instruments
CC2541F128, CC2541F256, CC2543, CC2544, and CC2545.
■ Vitesse
VSC7388, VSC7389, VSC7390, VSC7391, VSC7395, VSC7420, and VSC7422.
■ [µVision]
■ This C51 release comes with µVision V5.11.2.0.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
papa0305
1楼-- · 2020-01-23 20:28
 精彩回答 2  元偷偷看……
tam2907
2楼-- · 2020-01-23 22:12
本帖最后由 tam2907 于 2014-8-20 10:11 编辑

好用,代码优化比较好。

之前Keil3的问题
   
83:         case 1: M.BIT.BIT1=1; ---------------------------------为什么这里没编译为          ORL      M(0x08),#0x01         
C:0x0046    AF08     MOV      R7,M(0x08)
C:0x0048    EF       MOV      A,R7
C:0x0049    4401     ORL      A,#0x01
C:0x004B    F508     MOV      M(0x08),A
    84:             break;
C:0x004D    22       RET      

   138:         case 1: M.BIT.BIT1=0;----------------------------------为什么这里没编译为          ANL      M(0x08),#0xFE         
C:0x0149    AF08     MOV      R7,M(0x08)
C:0x014B    EF       MOV      A,R7
C:0x014C    54FE     ANL      A,#0xFE
C:0x014E    F508     MOV      M(0x08),A
   139:             break;
C:0x0150    22       RET      

keil5
    83:         case 1: M.BIT.BIT1=1;
C:0x0843    430801   ORL      M(0x08),#0x01
    84:             break;
C:0x0846    22       RET      

   138:         case 1: M.BIT.BIT1=0;
C:0x08E6    5308FE   ANL      M(0x08),#0xFE
   139:             break;
C:0x08E9    22       RET      
yklstudent
3楼-- · 2020-01-24 00:34
论坛的隐形福利就是多
qinshiysb
4楼-- · 2020-01-24 00:36
Download Error 106
askme
5楼-- · 2020-01-24 00:49
liuliu408
6楼-- · 2020-01-24 02:56
 精彩回答 2  元偷偷看……

一周热门 更多>