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

📄 simpleio.lis

📁 chipcom公司CC1100无线模块底层驱动程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0138 E0E0              ldi R30,0
 013A 9E07              cpc R25,R30
 013C 51F0              breq L40
 013E                   .dbline 109
 013E           ;         {
 013E                   .dbline 110
 013E           ;             digit = uvalue % radix ;
 013E 9C01              movw R18,R24
 0140 8A01              movw R16,R20
 0142 00D0              rcall mod16u
 0144 B801              movw R22,R16
 0146                   .dbline 111
 0146           ;             uvalue = uvalue / radix ;
 0146 2CA9              ldd R18,y+52
 0148 3DA9              ldd R19,y+53
 014A 8A01              movw R16,R20
 014C 00D0              rcall div16u
 014E A801              movw R20,R16
 0150                   .dbline 112
 0150           ;         }
 0150 0DC0              rjmp L41
 0152           L40:
 0152                   .dbline 114
 0152           ;         else
 0152           ;         {
 0152                   .dbline 115
 0152           ;             digit = uvalue & 0xf;
 0152 BA01              movw R22,R20
 0154 6F70              andi R22,15
 0156 7070              andi R23,0
 0158                   .dbline 116
 0158           ;             uvalue = uvalue >> 4;
 0158 1A01              movw R2,R20
 015A 3694              lsr R3
 015C 2794              ror R2
 015E 3694              lsr R3
 0160 2794              ror R2
 0162 3694              lsr R3
 0164 2794              ror R2
 0166 3694              lsr R3
 0168 2794              ror R2
 016A A101              movw R20,R2
 016C                   .dbline 117
 016C           ;         }
 016C           L41:
 016C                   .dbline 118
 016C           ;         buffer[bi] = digit + ((digit <= 9) ? '0' : ('A' - 10));
 016C 89E0              ldi R24,9
 016E 90E0              ldi R25,0
 0170 8617              cp R24,R22
 0172 9707              cpc R25,R23
 0174 1CF0              brlt L42
 0176 80E3              ldi R24,48
 0178 5C01              movw R10,R24
 017A 03C0              rjmp L43
 017C           L42:
 017C 87E3              ldi R24,55
 017E 90E0              ldi R25,0
 0180 5C01              movw R10,R24
 0182           L43:
 0182 1B01              movw R2,R22
 0184 2A0C              add R2,R10
 0186 3B1C              adc R3,R11
 0188 CE01              movw R24,R28
 018A F201              movw R30,R4
 018C E80F              add R30,R24
 018E F91F              adc R31,R25
 0190 2082              std z+0,R2
 0192                   .dbline 119
 0192           ;         bi++;
 0192 C201              movw R24,R4
 0194 0196              adiw R24,1
 0196 2C01              movw R4,R24
 0198                   .dbline 121
 0198           ; 
 0198           ;         if (uvalue != 0)
 0198 4030              cpi R20,0
 019A 4507              cpc R20,R21
 019C 09F4              brne X7
 019E 36C0              rjmp L44
 01A0           X7:
 01A0           X1:
 01A0                   .dbline 122
 01A0           ;         {
 01A0                   .dbline 123
 01A0           ;             if ((radix==10)&&((bi==3)||(bi==7)||(bi==11)|(bi==15)))
 01A0 8CA9              ldd R24,y+52
 01A2 9DA9              ldd R25,y+53
 01A4 8A30              cpi R24,10
 01A6 E0E0              ldi R30,0
 01A8 9E07              cpc R25,R30
 01AA 09F0              breq X8
 01AC 2FC0              rjmp L46
 01AE           X8:
 01AE C201              movw R24,R4
 01B0 8330              cpi R24,3
 01B2 E0E0              ldi R30,0
 01B4 9E07              cpc R25,R30
 01B6 01F1              breq L49
 01B8 8730              cpi R24,7
 01BA E0E0              ldi R30,0
 01BC 9E07              cpc R25,R30
 01BE E1F0              breq L49
 01C0 8B30              cpi R24,11
 01C2 E0E0              ldi R30,0
 01C4 9E07              cpc R25,R30
 01C6 21F4              brne L50
 01C8 81E0              ldi R24,1
 01CA 90E0              ldi R25,0
 01CC 5C01              movw R10,R24
 01CE 02C0              rjmp L51
 01D0           L50:
 01D0 AA24              clr R10
 01D2 BB24              clr R11
 01D4           L51:
 01D4 C201              movw R24,R4
 01D6 8F30              cpi R24,15
 01D8 E0E0              ldi R30,0
 01DA 9E07              cpc R25,R30
 01DC 21F4              brne L52
 01DE 81E0              ldi R24,1
 01E0 90E0              ldi R25,0
 01E2 6C01              movw R12,R24
 01E4 02C0              rjmp L53
 01E6           L52:
 01E6 CC24              clr R12
 01E8 DD24              clr R13
 01EA           L53:
 01EA 1501              movw R2,R10
 01EC 2C28              or R2,R12
 01EE 3D28              or R3,R13
 01F0 2220              tst R2
 01F2 11F4              brne X2
 01F4 3320              tst R3
 01F6 51F0              breq L46
 01F8           X2:
 01F8           L49:
 01F8                   .dbline 124
 01F8           ;             {
 01F8                   .dbline 125
 01F8           ;                   buffer[bi++]=',';
 01F8 1201              movw R2,R4
 01FA C101              movw R24,R2
 01FC 0196              adiw R24,1
 01FE 2C01              movw R4,R24
 0200 CE01              movw R24,R28
 0202 F101              movw R30,R2
 0204 E80F              add R30,R24
 0206 F91F              adc R31,R25
 0208 8CE2              ldi R24,44
 020A 8083              std z+0,R24
 020C                   .dbline 126
 020C           ;             }
 020C           L46:
 020C                   .dbline 127
 020C           ;         }
 020C           L44:
 020C                   .dbline 128
 020C           L38:
 020C                   .dbline 128
 020C           ;     } while (uvalue != 0);
 020C 4030              cpi R20,0
 020E 4507              cpc R20,R21
 0210 09F0              breq X9
 0212 8FCF              rjmp L37
 0214           X9:
 0214           X3:
 0214                   .dbline 130
 0214           ; 
 0214           ;     if (negative) {
 0214 EE20              tst R14
 0216 11F4              brne X4
 0218 FF20              tst R15
 021A 49F0              breq L54
 021C           X4:
 021C                   .dbline 130
 021C                   .dbline 131
 021C           ;       buffer[bi] = '-';
 021C CE01              movw R24,R28
 021E F201              movw R30,R4
 0220 E80F              add R30,R24
 0222 F91F              adc R31,R25
 0224 8DE2              ldi R24,45
 0226 8083              std z+0,R24
 0228                   .dbline 132
 0228           ;       bi += 1;
 0228 C201              movw R24,R4
 022A 0196              adiw R24,1
 022C 2C01              movw R4,R24
 022E                   .dbline 133
 022E           ;     }
 022E           L54:
 022E                   .dbline 134
 022E           ;     if (width <= bi)
 022E 0EA8              ldd R0,y+54
 0230 1FA8              ldd R1,y+55
 0232 4014              cp R4,R0
 0234 5104              cpc R5,R1
 0236 44F0              brlt L56
 0238                   .dbline 135
 0238           ;     {
 0238                   .dbline 136
 0238           ;         PutStringReverse(buffer, bi);
 0238 9201              movw R18,R4
 023A 8E01              movw R16,R28
 023C 2F93              push R18
 023E 3F93              push R19
 0240 1ADF              rcall _PutStringReverse
 0242 5F90              pop R5
 0244 4F90              pop R4
 0246                   .dbline 137
 0246           ;     }
 0246 21C0              rjmp L57
 0248           L56:
 0248                   .dbline 139
 0248           ;     else
 0248           ;     {
 0248                   .dbline 140
 0248           ;         width -= bi;
 0248 0EA8              ldd R0,y+54
 024A 1FA8              ldd R1,y+55
 024C 0418              sub R0,R4
 024E 1508              sbc R1,R5
 0250 1FAA              std y+55,R1
 0252 0EAA              std y+54,R0
 0254                   .dbline 141
 0254           ;         if (!left) PutRepChar(fill, width);
 0254 08A4              ldd R0,y+40
 0256 19A4              ldd R1,y+41
 0258 0020              tst R0
 025A 51F4              brne L58
 025C 1120              tst R1
 025E 41F4              brne L58
 0260           X5:
 0260                   .dbline 141
 0260 2EA9              ldd R18,y+54
 0262 3FA9              ldd R19,y+55
 0264 08AD              ldd R16,y+56
 0266 4F92              push R4
 0268 5F92              push R5
 026A F6DE              rcall _PutRepChar
 026C 5F90              pop R5
 026E 4F90              pop R4
 0270           L58:
 0270                   .dbline 142
 0270           ;         PutStringReverse(buffer, bi);
 0270 9201              movw R18,R4
 0272 8E01              movw R16,R28
 0274 00DF              rcall _PutStringReverse
 0276                   .dbline 143
 0276           ;         if (left) PutRepChar(fill, width);
 0276 08A4              ldd R0,y+40
 0278 19A4              ldd R1,y+41
 027A 0020              tst R0
 027C 11F4              brne X6
 027E 1120              tst R1
 0280 21F0              breq L60
 0282           X6:
 0282                   .dbline 143
 0282 2EA9              ldd R18,y+54
 0284 3FA9              ldd R19,y+55
 0286 08AD              ldd R16,y+56
 0288 E7DE              rcall _PutRepChar
 028A           L60:
 028A                   .dbline 144
 028A           L57:
 028A                   .dbline -2
 028A           L25:
 028A AA96              adiw R28,42
 028C 00D0              rcall pop_gset5
 028E 2296              adiw R28,2
 0290                   .dbline 0 ; func end
 0290 0895              ret
 0292                   .dbsym r negative 14 S
 0292                   .dbsym l left 40 S
 0292                   .dbsym l buffer 0 A[40:40]c
 0292                   .dbsym r digit 22 S
 0292                   .dbsym r bi 4 I
 0292                   .dbsym r uvalue 20 i
 0292                   .dbsym l fill 56 c
 0292                   .dbsym l width 54 I
 0292                   .dbsym l radix 52 I
 0292                   .dbsym r value 22 I
 0292                   .dbend
 0292                   .dbfunc s FormatItem _FormatItem fpc
 0292           ;           fill -> R14
 0292           ;       leftjust -> R20,R21
 0292           ;     fieldwidth -> y+3
 0292           ;          radix -> R10,R11
 0292           ;              c -> R12
 0292           ;              a -> y+17
 0292           ;              f -> y+15
                        .even
 0292           _FormatItem:
 0292 00D0              rcall push_arg4
 0294 00D0              rcall push_gset5
 0296 2597              sbiw R28,5
 0298                   .dbline -1
 0298                   .dbline 149
 0298           ;     }
 0298           ; }
 0298           ; 
 0298           ; 
 0298           ; static char *FormatItem(char *f, int a)
 0298           ; {
 0298                   .dbline 151
 0298           ;     char c;
 0298           ;     int fieldwidth = 0;
 0298 0024              clr R0
 029A 1124              clr R1
 029C 1C82              std y+4,R1
 029E 0B82              std y+3,R0
 02A0                   .dbline 152
 02A0           ;     int leftjust = FALSE;
 02A0 4427              clr R20
 02A2 5527              clr R21
 02A4                   .dbline 153
 02A4           ;     int radix = 0;
 02A4 AA24              clr R10
 02A6 BB24              clr R11
 02A8                   .dbline 154
 02A8           ;     char fill = ' ';
 02A8 80E2              ldi R24,32
 02AA E82E              mov R14,R24
 02AC                   .dbline 156
 02AC           ; 
 02AC           ;     if (*f == '0') fill = '0';
 02AC EF85              ldd R30,y+15
 02AE F889              ldd R31,y+16
 02B0 8081              ldd R24,z+0
 02B2 8033              cpi R24,48
 02B4 09F0              breq X18
 02B6 D1C0              rjmp L66
 02B8           X18:
 02B8                   .dbline 156
 02B8 80E3              ldi R24,48
 02BA E82E              mov R14,R24
 02BC CEC0              rjmp L66
 02BE           L65:
 02BE                   .dbline 158
 02BE           ;     while ((c = *f++)!=0)
 02BE           ;     {
 02BE                   .dbline 159
 02BE           ;         if (c >= '0' && c <= '9')
 02BE 8C2D              mov R24,R12
 02C0 8033              cpi R24,48
 02C2 88F0              brlo L68
 02C4 89E3              ldi R24,57
 02C6 8C15              cp R24,R12
 02C8 70F0              brlo L68
 02CA                   .dbline 160
 02CA           ;         {
 02CA                   .dbline 161
 02CA           ;             fieldwidth = (fieldwidth * 10) + (c - '0');
 02CA 0AE0              ldi R16,10
 02CC 10E0              ldi R17,0
 02CE 2B81              ldd R18,y+3
 02D0 3C81              ldd R19,y+4
 02D2 00D0              rcall empy16s
 02D4 1801              movw R2,R16
 02D6 8C2D              mov R24,R12
 02D8 9927              clr R25
 02DA C097              sbiw R24,48
 02DC 280E              add R2,R24
 02DE 391E              adc R3,R25
 02E0 3C82              std y+4,R3
 02E2 2B82              std y+3,R2
 02E4                   .dbline 162
 02E4           ;         }
 02E4 B5C0              rjmp L69
 02E6           L68:
 02E6                   .dbline 164
 02E6           ;         else
 02E6           ;         {
 02E6                   .dbline 165
 02E6           ;             switch (c)
 02E6 6C2D              mov R22,R12
 02E8 7727              clr R23
 02EA 6835              cpi R22,88
 02EC E0E0              ldi R30,0
 02EE 7E07              cpc R23,R30
 02F0 09F4              brne X19
 02F2 A3C0              rjmp L93
 02F4           X19:
 02F4 88E5              ldi R24,88
 02F6 90E0              ldi R25,0
 02F8 8617              cp R24,R22
 02FA 9707              cpc R25,R23
 02FC ACF0              brlt L96
 02FE           L95:
 02FE 6532              cpi R22,37
 0300 E0E0              ldi R30,0
 0302 7E07              cpc R23,R30
 0304 09F4              brne X20
 0306 46C0              rjmp L74
 0308           X20:
 0308 85E2              ldi R24,37
 030A 90E0              ldi R25,0
 030C 8617              cp R24,R22
 030E 9707              cpc R25,R23
 0310 2CF0              brlt L98
 0312           L97:
 0312 6030              cpi R22,0
 0314 6707              cpc R22,R23
 0316 09F4              brne X21
 0318 36C0              rjmp L73
 031A           X21:
 031A           X10:
 031A 97C0              rjmp L70
 031C           L98:
 031C 6D32              cpi R22,45
 031E E0E0              ldi R30,0
 0320 7E07              cpc R23,R30
 0322 09F4              brne X22
 0324 3CC0              rjmp L75
 0326           X22:
 0326 91C0              rjmp L70

⌨️ 快捷键说明

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