?? lcd.lis
字號:
039C 0CAD ldd R16,y+60
039E 1DAD ldd R17,y+61
03A0 0E940000 xcall uint2fp
03A4 3A93 st -y,R19
03A6 2A93 st -y,R18
03A8 1A93 st -y,R17
03AA 0A93 st -y,R16
03AC 8101 movw R16,R2
03AE 9201 movw R18,R4
03B0 0E940000 xcall fpmule2
03B4 0E940000 xcall fpint
03B8 0C83 std y+4,R16
03BA 1D83 std y+5,R17
03BC 2E83 std y+6,R18
03BE 3F83 std y+7,R19
03C0 .dbline 252
03C0 ;
03C0 ; datawhole_n = lengh_longint( datawhole ); //如果整數部分為0, datawhole_n 不一定等于小數的位數
03C0 0C81 ldd R16,y+4
03C2 1D81 ldd R17,y+5
03C4 2E81 ldd R18,y+6
03C6 3F81 ldd R19,y+7
03C8 EADE xcall _lengh_longint
03CA .dbline 254
03CA ;
03CA ; whole_fact_n = mm + zhengshu_n; ///*/*實際
03CA 242E mov R2,R20
03CC 3324 clr R3
03CE AE2C mov R10,R14
03D0 A20C add R10,R2
03D2 B31C adc R11,R3
03D4 .dbline 256
03D4 ;
03D4 ; if( zhengshu == 0 )
03D4 CC20 tst R12
03D6 71F4 brne L46
03D8 DD20 tst R13
03DA 61F4 brne L46
03DC X16:
03DC .dbline 257
03DC ; {
03DC .dbline 258
03DC ; xiaoshu_act_n = lengh_longint( datawhole );
03DC 0C81 ldd R16,y+4
03DE 1D81 ldd R17,y+5
03E0 2E81 ldd R18,y+6
03E2 3F81 ldd R19,y+7
03E4 DCDE xcall _lengh_longint
03E6 A02E mov R10,R16
03E8 .dbline 259
03E8 ; ling_n = mm - xiaoshu_act_n; //如果整數為0, 小數有效位為xiaoshu_act_n
03E8 2A2C mov R2,R10
03EA 3324 clr R3
03EC 6E2D mov R22,R14
03EE 6219 sub R22,R2
03F0 7309 sbc R23,R3
03F2 .dbline 260
03F2 ; }
03F2 01C0 xjmp L47
03F4 L46:
03F4 .dbline 262
03F4 ;
03F4 ; else xiaoshu_act_n = mm;
03F4 AE2C mov R10,R14
03F6 L47:
03F6 .dbline 264
03F6 ;
03F6 ; ling_n = mm - xiaoshu_act_n; //用ling_0記錄小數部分前面0的位數
03F6 2A2C mov R2,R10
03F8 3324 clr R3
03FA 6E2D mov R22,R14
03FC 6219 sub R22,R2
03FE 7309 sbc R23,R3
0400 .dbline 266
0400 ;
0400 ; for( i = 0; i < xiaoshu_act_n; i++ )
0400 0024 clr R0
0402 0EA2 std y+38,R0
0404 39C0 xjmp L51
0406 L48:
0406 .dbline 267
0406 ; {
0406 .dbline 268
0406 ; datachar1[n++] = ( datawhole % 10 ) + 0x30; //轉換為字符
0406 E9A4 ldd R14,y+41
0408 FF24 clr R15
040A 8E2D mov R24,R14
040C 8F5F subi R24,255 ; addi 1
040E 89A7 std y+41,R24
0410 8AE0 ldi R24,10
0412 90E0 ldi R25,0
0414 A0E0 ldi R26,0
0416 B0E0 ldi R27,0
0418 0C81 ldd R16,y+4
041A 1D81 ldd R17,y+5
041C 2E81 ldd R18,y+6
041E 3F81 ldd R19,y+7
0420 BA93 st -y,R27
0422 AA93 st -y,R26
0424 9A93 st -y,R25
0426 8A93 st -y,R24
0428 0E940000 xcall mod32s
042C 1801 movw R2,R16
042E 2901 movw R4,R18
0430 80E3 ldi R24,48
0432 90E0 ldi R25,0
0434 A0E0 ldi R26,0
0436 B0E0 ldi R27,0
0438 280E add R2,R24
043A 391E adc R3,R25
043C 4A1E adc R4,R26
043E 5B1E adc R5,R27
0440 CE01 movw R24,R28
0442 0896 adiw R24,8
0444 EE2D mov R30,R14
0446 FF27 clr R31
0448 E80F add R30,R24
044A F91F adc R31,R25
044C 2082 std z+0,R2
044E .dbline 269
044E ; datawhole /= 10;
044E 8AE0 ldi R24,10
0450 90E0 ldi R25,0
0452 A0E0 ldi R26,0
0454 B0E0 ldi R27,0
0456 0C81 ldd R16,y+4
0458 1D81 ldd R17,y+5
045A 2E81 ldd R18,y+6
045C 3F81 ldd R19,y+7
045E BA93 st -y,R27
0460 AA93 st -y,R26
0462 9A93 st -y,R25
0464 8A93 st -y,R24
0466 0E940000 xcall div32s
046A 0C83 std y+4,R16
046C 1D83 std y+5,R17
046E 2E83 std y+6,R18
0470 3F83 std y+7,R19
0472 .dbline 270
0472 ; }
0472 L49:
0472 .dbline 266
0472 0EA0 ldd R0,y+38
0474 0394 inc R0
0476 0EA2 std y+38,R0
0478 L51:
0478 .dbline 266
0478 0EA0 ldd R0,y+38
047A 0A14 cp R0,R10
047C 08F4 brsh X21
047E C3CF xjmp L48
0480 X21:
0480 X17:
0480 .dbline 272
0480 ;
0480 ; k = n - 1;
0480 89A5 ldd R24,y+41
0482 8150 subi R24,1
0484 8FA3 std y+39,R24
0486 .dbline 273
0486 ; kk = n; //記錄存入的個數
0486 09A4 ldd R0,y+41
0488 08A6 std y+40,R0
048A .dbline 275
048A ;
048A ; for( i = 0; i < kk; i++, k-- )
048A 0024 clr R0
048C 0EA2 std y+38,R0
048E 14C0 xjmp L55
0490 L52:
0490 .dbline 276
0490 ; {
0490 .dbline 277
0490 ; datachar2[k] = datachar1[i]; //將數字符串倒過來
0490 CE01 movw R24,R28
0492 0896 adiw R24,8
0494 EEA1 ldd R30,y+38
0496 FF27 clr R31
0498 E80F add R30,R24
049A F91F adc R31,R25
049C 2080 ldd R2,z+0
049E CE01 movw R24,R28
04A0 4196 adiw R24,17
04A2 EFA1 ldd R30,y+39
04A4 FF27 clr R31
04A6 E80F add R30,R24
04A8 F91F adc R31,R25
04AA 2082 std z+0,R2
04AC .dbline 278
04AC ; }
04AC L53:
04AC .dbline 275
04AC 0EA0 ldd R0,y+38
04AE 0394 inc R0
04B0 0EA2 std y+38,R0
04B2 0FA0 ldd R0,y+39
04B4 0A94 dec R0
04B6 0FA2 std y+39,R0
04B8 L55:
04B8 .dbline 275
04B8 0EA0 ldd R0,y+38
04BA 08A5 ldd R16,y+40
04BC 0016 cp R0,R16
04BE 40F3 brlo L52
04C0 X18:
04C0 .dbline 280
04C0 ;
04C0 ; LCD_write_datalongint( r, c, zhengshu ); //顯示整數部分
04C0 1601 movw R2,R12
04C2 4424 clr R4
04C4 5524 clr R5
04C6 2882 std y+0,R2
04C8 3982 std y+1,R3
04CA 4A82 std y+2,R4
04CC 5B82 std y+3,R5
04CE 2EA9 ldd R18,y+54
04D0 0CA9 ldd R16,y+52
04D2 A0DE xcall _LCD_write_datalongint
04D4 .dbline 281
04D4 ; c = c + zhengshu_n;
04D4 0EA8 ldd R0,y+54
04D6 040E add R0,R20
04D8 0EAA std y+54,R0
04DA .dbline 282
04DA ; LCD_write_char( r, c, '.' );
04DA 8EE2 ldi R24,46
04DC 8883 std y+0,R24
04DE 202D mov R18,R0
04E0 0CA9 ldd R16,y+52
04E2 13DE xcall _LCD_write_char
04E4 .dbline 283
04E4 ; c++;
04E4 0EA8 ldd R0,y+54
04E6 0394 inc R0
04E8 0EAA std y+54,R0
04EA .dbline 284
04EA ; for( i = 0; i < ling_n; i++ )
04EA 0024 clr R0
04EC 0EA2 std y+38,R0
04EE 0CC0 xjmp L59
04F0 L56:
04F0 .dbline 285
04F0 ; {
04F0 .dbline 286
04F0 ; LCD_write_char( r, c++, '0' );
04F0 80E3 ldi R24,48
04F2 8883 std y+0,R24
04F4 4EA9 ldd R20,y+54
04F6 842F mov R24,R20
04F8 8F5F subi R24,255 ; addi 1
04FA 8EAB std y+54,R24
04FC 242F mov R18,R20
04FE 0CA9 ldd R16,y+52
0500 04DE xcall _LCD_write_char
0502 .dbline 287
0502 ; }
0502 L57:
0502 .dbline 284
0502 0EA0 ldd R0,y+38
0504 0394 inc R0
0506 0EA2 std y+38,R0
0508 L59:
0508 .dbline 284
0508 0EA0 ldd R0,y+38
050A 0616 cp R0,R22
050C 88F3 brlo L56
050E X19:
050E .dbline 289
050E ;
050E ; for( i = 0; i < kk; i++ )
050E 0024 clr R0
0510 0EA2 std y+38,R0
0512 12C0 xjmp L63
0514 L60:
0514 .dbline 290
0514 ; {
0514 .dbline 291
0514 ; LCD_write_char( r, c++, datachar2[i] );
0514 CE01 movw R24,R28
0516 4196 adiw R24,17
0518 EEA1 ldd R30,y+38
051A FF27 clr R31
051C E80F add R30,R24
051E F91F adc R31,R25
0520 2080 ldd R2,z+0
0522 2882 std y+0,R2
0524 6EA9 ldd R22,y+54
0526 862F mov R24,R22
0528 8F5F subi R24,255 ; addi 1
052A 8EAB std y+54,R24
052C 262F mov R18,R22
052E 0CA9 ldd R16,y+52
0530 ECDD xcall _LCD_write_char
0532 .dbline 292
0532 ; }
0532 L61:
0532 .dbline 289
0532 0EA0 ldd R0,y+38
0534 0394 inc R0
0536 0EA2 std y+38,R0
0538 L63:
0538 .dbline 289
0538 0EA0 ldd R0,y+38
053A 08A5 ldd R16,y+40
053C 0016 cp R0,R16
053E 50F3 brlo L60
0540 X20:
0540 .dbline -2
0540 L45:
0540 .dbline 0 ; func end
0540 AA96 adiw R28,42
0542 0E940000 xcall pop_xgsetF0FC
0546 2496 adiw R28,4
0548 0895 ret
054A .dbsym l datawholetmp 34 L
054A .dbsym l xiaoxhu 5 i
054A .dbsym l datatemp2_f 30 D
054A .dbsym r xiaoshu_n 10 c
054A .dbsym r whole_fact_n 10 c
054A .dbsym r zhengshu_no 10 c
054A .dbsym r datawhole_n 10 c
054A .dbsym l datatemp1_f 26 D
054A .dbsym r zhengshu_n 20 c
054A .dbsym r zhengshu 12 i
054A .dbsym r ling_n 22 c
054A .dbsym r xiaoshu_act_n 10 c
054A .dbsym l n 41 c
054A .dbsym l datachar2 17 A[9:9]c
054A .dbsym l datachar1 8 A[9:9]c
054A .dbsym l kk 40 c
054A .dbsym l k 39 c
054A .dbsym l datawhole 4 L
054A .dbsym l i 38 c
054A .dbsym r mm 14 i
054A .dbsym l p 60 i
054A .dbsym l datafloat 56 D
054A .dbsym l c 54 c
054A .dbsym l r 52 c
054A .dbend
054A ; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -