⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.lst

📁 移植的ucos
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000002E6   91E0....                   LDS     R30,LWRD(UartTxWrPtr)
   \   000002EA   E0F0                       LDI     R31,LOW(0)
   \   000002EC   ....                       SUBI    R30,LOW(-(UartTxBuf))
   \   000002EE   ....                       SBCI    R31,HIGH(-(UartTxBuf))
   \   000002F0   8380                       ST      Z,R24
    204                  UartTxWrPtr++;                                  /* Prepare for next character                       */
   \   000002F2   9100....                   LDS     R16,LWRD(UartTxWrPtr)
   \   000002F6   9503                       INC     R16
   \   000002F8   9300....                   STS     LWRD(UartTxWrPtr),R16
    205                  UartTxCount++;                                  /* Increment number of characters to send           */
   \   000002FC   9100....                   LDS     R16,LWRD(UartTxCount)
   \   00000300   9503                       INC     R16
   \   00000302   9300....                   STS     LWRD(UartTxCount),R16
    206              } else {
   \   00000306   C005                       RJMP    ?0067
   \                     ?0066:
    207                  UDR         = c;                                /* Write first char directly to the UART            */
   \   00000308   B98C                       OUT     LOW(12),R24
    208                  UartTxCount = 1;
   \   0000030A   E001                       LDI     R16,1
   \   0000030C   9300....                   STS     LWRD(UartTxCount),R16
    209                  UCR        |= 0x40;                             /* Enable UART transmit complete interrupt          */
   \   00000310   9A56                       SBI     LOW(10),LOW(6)
   \                     ?0067:
    210              }
    211              OS_EXIT_CRITICAL();
   \   00000312   930A                       DW      LWRD(37642)
   \   00000314   910F                       DW      LWRD(37135)
   \   00000316   BF0F                       DW      LWRD(48911)
   \   00000318   9109                       DW      LWRD(37129)
    212          }
   \   0000031A   9621                       ADIW    R28,LOW(1)
   \   0000031C   9189                       LD      R24,Y+
   \   0000031E   9508                       RET     
   \                     ;	c               	R24
   \                     PutString:
    213          
    214          
    215          void PutString (const char *s)
    216          {
   \   00000320   ....                       RCALL   ?PROLOGUE2_L09
   \   00000322   2F80                       MOV     R24,R16
   \   00000324   2F91                       MOV     R25,R17
   \                     ?0069:
    217              while (*s != '\0') {
   \   00000326   2FE8                       MOV     R30,R24
   \   00000328   2FF9                       MOV     R31,R25
   \   0000032A   8100                       LD      R16,Z
   \   0000032C   2300                       TST     R16
   \   0000032E   F029                       BREQ    ?0068
    218                  PutChar(*s++);
   \   00000330   9101                       LD      R16,Z+
   \   00000332   2F8E                       MOV     R24,R30
   \   00000334   2F9F                       MOV     R25,R31
   \   00000336   DFC8                       RCALL   PutChar
    219              }
    220          }
   \   00000338   CFF6                       RJMP    ?0069
   \                     ?0068:
   \   0000033A   E0E2                       LDI     R30,2
   \   0000033C   ....                       RJMP    ?EPILOGUE_B2_L09
   \                     ;	s               	R24-R25
   \                     SPrintDec:
    221          
    222          
    223          void SPrintDec(char *s, INT32U x, INT8U n, char c)
    224          {
   \   0000033E   ....                       RCALL   ?PROLOGUE8_L09
   \   00000340   2E60                       MOV     R6,R16
   \   00000342   2E71                       MOV     R7,R17
   \   00000344   2F84                       MOV     R24,R20
   \   00000346   2F95                       MOV     R25,R21
   \   00000348   2FA6                       MOV     R26,R22
   \   0000034A   2FB7                       MOV     R27,R23
   \   0000034C   8458                       LDD     R5,Y+8
    225              INT8U i;
    226          
    227          
    228              s[n] = '\0';
   \   0000034E   E000                       LDI     R16,LOW(0)
   \   00000350   2DE5                       MOV     R30,R5
   \   00000352   E0F0                       LDI     R31,LOW(0)
   \   00000354   0DE6                       ADD     R30,R6
   \   00000356   1FF1                       ADC     R31,R17
   \   00000358   8300                       ST      Z,R16
    229              for (i = 0; i < n; i++) {
   \   0000035A   2444                       CLR     R4
   \                     ?0072:
   \   0000035C   1445                       CP      R4,R5
   \   0000035E   F488                       BRCC    ?0071
    230                  s[n - i - 1] = '0' + (x % 10);
   \   00000360   DF40                       RCALL   ?0101
   \   00000362   5D40                       SUBI    R20,LOW(208)
   \   00000364   2DE5                       MOV     R30,R5
   \   00000366   E0F0                       LDI     R31,LOW(0)
   \   00000368   19E4                       SUB     R30,R4
   \   0000036A   40F0                       SBCI    R31,LOW(0)
   \   0000036C   0DE6                       ADD     R30,R6
   \   0000036E   1DF7                       ADC     R31,R7
   \   00000370   9731                       SBIW    R30,LWRD(1)
   \   00000372   8340                       ST      Z,R20
    231                  x /= 10;
   \   00000374   DF36                       RCALL   ?0101
   \   00000376   2F80                       MOV     R24,R16
   \   00000378   2F91                       MOV     R25,R17
   \   0000037A   2FA2                       MOV     R26,R18
   \   0000037C   2FB3                       MOV     R27,R19
   \   0000037E   9443                       INC     R4
   \   00000380   CFED                       RJMP    ?0072
   \                     ?0071:
    232              }
    233              for (i = 0; i < (n - 1); i++) {
   \   00000382   2444                       CLR     R4
   \                     ?0076:
   \   00000384   2D05                       MOV     R16,R5
   \   00000386   E010                       LDI     R17,LOW(0)
   \   00000388   5001                       SUBI    R16,LOW(1)
   \   0000038A   4010                       SBCI    R17,LOW(0)
   \   0000038C   E030                       LDI     R19,LOW(0)
   \   0000038E   1640                       CP      R4,R16
   \   00000390   0731                       CPC     R19,R17
   \   00000392   F44C                       BRGE    ?0075
    234                  if (s[i] == '0') {
   \   00000394   D00A                       RCALL   ?0110
   \   00000396   8100                       LD      R16,Z
   \   00000398   3300                       CPI     R16,LOW(48)
   \   0000039A   F429                       BRNE    ?0075
    235                      s[i] = c;
   \   0000039C   8509                       LDD     R16,Y+9
   \   0000039E   D005                       RCALL   ?0110
   \   000003A0   8300                       ST      Z,R16
    236                  } else {
    237                      break;
   \   000003A2   9443                       INC     R4
    238                  }
    239              }
    240          }
   \   000003A4   CFEF                       RJMP    ?0076
   \                     ?0075:
   \   000003A6   E0EA                       LDI     R30,10
   \   000003A8   ....                       RJMP    ?EPILOGUE_B8_L09
   \                     ?0110:
   \   000003AA   2DE4                       MOV     R30,R4
   \   000003AC   E0F0                       LDI     R31,LOW(0)
   \   000003AE   0DE6                       ADD     R30,R6
   \   000003B0   1DF7                       ADC     R31,R7
   \   000003B2   9508                       RET     
   \                     ;	x               	R24-R27
   \                     ;	i               	R4
   \                     ;	n               	R5
   \                     ;	s               	R6-R7
   \                     random:
    241          
    242          
    243          INT8U random (INT8U n)
    244          {
   \   000003B4   ....                       RCALL   ?PROLOGUE2_L09
   \   000003B6   2F80                       MOV     R24,R16
    245              RndNext = RndNext * 1103515245 + 12345;
   \   000003B8   ....                       LDI     R30,LOW(RndNext)
   \   000003BA   ....                       LDI     R31,(RndNext >> 8)
   \   000003BC   8100                       LDD     R16,Z+0
   \   000003BE   8111                       LDD     R17,Z+1
   \   000003C0   8122                       LDD     R18,Z+2
   \   000003C2   8133                       LDD     R19,Z+3
   \   000003C4   E64D                       LDI     R20,LOW(109)
   \   000003C6   E45E                       LDI     R21,LOW(78)
   \   000003C8   EC66                       LDI     R22,LOW(198)
   \   000003CA   E471                       LDI     R23,65
   \   000003CC   ....                       RCALL   ?L_MUL_L03
   \   000003CE   5C07                       SUBI    R16,LOW(199)
   \   000003D0   4C1F                       SBCI    R17,LOW(207)
   \   000003D2   4F2F                       SBCI    R18,LOW(255)
   \   000003D4   4F3F                       SBCI    R19,LOW(255)
   \   000003D6   ....                       LDI     R30,LOW(RndNext)
   \   000003D8   8300                       STD     Z+0,R16
   \   000003DA   8311                       STD     Z+1,R17
   \   000003DC   8322                       STD     Z+2,R18
   \   000003DE   8333                       STD     Z+3,R19
    246              return ((INT8U)(RndNext / 256) % (n + 1));
   \   000003E0   2F01                       MOV     R16,R17
   \   000003E2   E010                       LDI     R17,LOW(0)
   \   000003E4   E090                       LDI     R25,LOW(0)
   \   000003E6   9601                       ADIW    R24,LWRD(1)
   \   000003E8   2F48                       MOV     R20,R24
   \   000003EA   2F59                       MOV     R21,R25
   \   000003EC   ....                       RCALL   ?SS_DIVMOD_L02
   \   000003EE   2F04                       MOV     R16,R20
    247          }
   \   000003F0   E0E2                       LDI     R30,2
   \   000003F2   ....                       RJMP    ?EPILOGUE_B2_L09
   \                     ;	n               	R24
   \                     PutDec:
    248          
    249          
    250          void PutDec (INT8U x2)
    251          {
   \   000003F4   ....                       RCALL   ?PROLOGUE3_L09
   \   000003F6   2FA0                       MOV     R26,R16
    252              INT8U x0;
    253              INT8U x1;
    254          
    255          
    256              x0  = (x2 % 10);
   \   000003F8   E04A                       LDI     R20,10
   \   000003FA   ....                       RCALL   ?UC_DIVMOD_L01
   \   000003FC   2F94                       MOV     R25,R20
    257              x2 /= 10;
   \   000003FE   D014                       RCALL   ?0100
    258              x1  = (x2 % 10);
   \   00000400   E04A                       LDI     R20,10
   \   00000402   ....                       RCALL   ?UC_DIVMOD_L01
   \   00000404   2F84                       MOV     R24,R20
    259              x2 /= 10;
   \   00000406   D010                       RCALL   ?0100
    260              if (x2) {
   \   00000408   2300                       TST     R16
   \   0000040A   F011                       BREQ    ?0083
    261                  PutChar(x2 + '0');
   \   0000040C   5D00                       SUBI    R16,LOW(208)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -