📄 hc595.lis
字号:
0368 0E940000 xcall sub32f
036C 0E940000 xcall fp2int
0370 B801 movw R22,R16
0372 6050 subi R22,0 ; offset = 32768
0374 7048 sbci R23,128
0376 08C0 xjmp L49
0378 L48:
0378 FE01 movw R30,R28
037A 0081 ldd R16,z+0
037C 1181 ldd R17,z+1
037E 2281 ldd R18,z+2
0380 3381 ldd R19,z+3
0382 0E940000 xcall fp2int
0386 B801 movw R22,R16
0388 L49:
0388 AB01 movw R20,R22
038A .dbline 167
038A ; point_pos=1;
038A 81E0 ldi R24,1
038C 80930100 sts _point_pos,R24
0390 .dbline 168
0390 ; Seg7_Led_Buf[3]=temp/1000;
0390 28EE ldi R18,1000
0392 33E0 ldi R19,3
0394 8A01 movw R16,R20
0396 0E940000 xcall div16u
039A 00930300 sts _Seg7_Led_Buf+3,R16
039E .dbline 169
039E ; Seg7_Led_Buf[2]=(temp%1000)/100;
039E 28EE ldi R18,1000
03A0 33E0 ldi R19,3
03A2 8A01 movw R16,R20
03A4 0E940000 xcall mod16u
03A8 24E6 ldi R18,100
03AA 30E0 ldi R19,0
03AC 0E940000 xcall div16u
03B0 00930200 sts _Seg7_Led_Buf+2,R16
03B4 .dbline 170
03B4 ; Seg7_Led_Buf[1]=(temp%100)/10;
03B4 24E6 ldi R18,100
03B6 30E0 ldi R19,0
03B8 8A01 movw R16,R20
03BA 0E940000 xcall mod16u
03BE 2AE0 ldi R18,10
03C0 30E0 ldi R19,0
03C2 0E940000 xcall div16u
03C6 00930100 sts _Seg7_Led_Buf+1,R16
03CA .dbline 171
03CA ; Seg7_Led_Buf[0]=temp%10;
03CA 2AE0 ldi R18,10
03CC 30E0 ldi R19,0
03CE 8A01 movw R16,R20
03D0 0E940000 xcall mod16u
03D4 00930000 sts _Seg7_Led_Buf,R16
03D8 .dbline 172
03D8 ; Seg7_Led_Update();
03D8 30DE xcall _Seg7_Led_Update
03DA .dbline 173
03DA ; }
03DA 02C1 xjmp L46
03DC L45:
03DC .dbline 174
03DC ; else if(data>9)
03DC 00E0 ldi R16,<L57
03DE 10E0 ldi R17,>L57
03E0 0E940000 xcall lpm32
03E4 3A93 st -y,R19
03E6 2A93 st -y,R18
03E8 1A93 st -y,R17
03EA 0A93 st -y,R16
03EC FE01 movw R30,R28
03EE ; stack offset 4
03EE 2484 ldd R2,z+12
03F0 3584 ldd R3,z+13
03F2 4684 ldd R4,z+14
03F4 5784 ldd R5,z+15
03F6 5A92 st -y,R5
03F8 4A92 st -y,R4
03FA 3A92 st -y,R3
03FC 2A92 st -y,R2
03FE 0E940000 xcall cmp32f
0402 0CF0 brlt X1
0404 77C0 xjmp L55
0406 X1:
0406 .dbline 175
0406 ; {
0406 .dbline 176
0406 ; temp=data*100;
0406 00E0 ldi R16,<L60
0408 10E0 ldi R17,>L60
040A 0E940000 xcall lpm32
040E 3A93 st -y,R19
0410 2A93 st -y,R18
0412 1A93 st -y,R17
0414 0A93 st -y,R16
0416 FE01 movw R30,R28
0418 ; stack offset 4
0418 2484 ldd R2,z+12
041A 3584 ldd R3,z+13
041C 4684 ldd R4,z+14
041E 5784 ldd R5,z+15
0420 5A92 st -y,R5
0422 4A92 st -y,R4
0424 3A92 st -y,R3
0426 2A92 st -y,R2
0428 0E940000 xcall empy32f
042C FE01 movw R30,R28
042E 0083 std z+0,R16
0430 1183 std z+1,R17
0432 2283 std z+2,R18
0434 3383 std z+3,R19
0436 FE01 movw R30,R28
0438 2080 ldd R2,z+0
043A 3180 ldd R3,z+1
043C 4280 ldd R4,z+2
043E 5380 ldd R5,z+3
0440 5A92 st -y,R5
0442 4A92 st -y,R4
0444 3A92 st -y,R3
0446 2A92 st -y,R2
0448 00E0 ldi R16,<L51
044A 10E0 ldi R17,>L51
044C 0E940000 xcall lpm32
0450 3A93 st -y,R19
0452 2A93 st -y,R18
0454 1A93 st -y,R17
0456 0A93 st -y,R16
0458 0E940000 xcall cmp32f
045C CCF0 brlt L58
045E FE01 movw R30,R28
0460 2080 ldd R2,z+0
0462 3180 ldd R3,z+1
0464 4280 ldd R4,z+2
0466 5380 ldd R5,z+3
0468 5A92 st -y,R5
046A 4A92 st -y,R4
046C 3A92 st -y,R3
046E 2A92 st -y,R2
0470 00E0 ldi R16,<L51
0472 10E0 ldi R17,>L51
0474 0E940000 xcall lpm32
0478 3A93 st -y,R19
047A 2A93 st -y,R18
047C 1A93 st -y,R17
047E 0A93 st -y,R16
0480 0E940000 xcall sub32f
0484 0E940000 xcall fp2int
0488 B801 movw R22,R16
048A 6050 subi R22,0 ; offset = 32768
048C 7048 sbci R23,128
048E 08C0 xjmp L59
0490 L58:
0490 FE01 movw R30,R28
0492 0081 ldd R16,z+0
0494 1181 ldd R17,z+1
0496 2281 ldd R18,z+2
0498 3381 ldd R19,z+3
049A 0E940000 xcall fp2int
049E B801 movw R22,R16
04A0 L59:
04A0 AB01 movw R20,R22
04A2 .dbline 177
04A2 ; point_pos=2;
04A2 82E0 ldi R24,2
04A4 80930100 sts _point_pos,R24
04A8 .dbline 178
04A8 ; Seg7_Led_Buf[3]=temp/1000;
04A8 28EE ldi R18,1000
04AA 33E0 ldi R19,3
04AC 8A01 movw R16,R20
04AE 0E940000 xcall div16u
04B2 00930300 sts _Seg7_Led_Buf+3,R16
04B6 .dbline 179
04B6 ; Seg7_Led_Buf[2]=(temp%1000)/100;
04B6 28EE ldi R18,1000
04B8 33E0 ldi R19,3
04BA 8A01 movw R16,R20
04BC 0E940000 xcall mod16u
04C0 24E6 ldi R18,100
04C2 30E0 ldi R19,0
04C4 0E940000 xcall div16u
04C8 00930200 sts _Seg7_Led_Buf+2,R16
04CC .dbline 180
04CC ; Seg7_Led_Buf[1]=(temp%100)/10;
04CC 24E6 ldi R18,100
04CE 30E0 ldi R19,0
04D0 8A01 movw R16,R20
04D2 0E940000 xcall mod16u
04D6 2AE0 ldi R18,10
04D8 30E0 ldi R19,0
04DA 0E940000 xcall div16u
04DE 00930100 sts _Seg7_Led_Buf+1,R16
04E2 .dbline 181
04E2 ; Seg7_Led_Buf[0]=temp%10;
04E2 2AE0 ldi R18,10
04E4 30E0 ldi R19,0
04E6 8A01 movw R16,R20
04E8 0E940000 xcall mod16u
04EC 00930000 sts _Seg7_Led_Buf,R16
04F0 .dbline 182
04F0 ; Seg7_Led_Update();
04F0 A4DD xcall _Seg7_Led_Update
04F2 .dbline 183
04F2 ; }
04F2 76C0 xjmp L56
04F4 L55:
04F4 .dbline 185
04F4 ; else
04F4 ; {
04F4 .dbline 186
04F4 ; temp=data*1000;
04F4 00E0 ldi R16,<L66
04F6 10E0 ldi R17,>L66
04F8 0E940000 xcall lpm32
04FC 3A93 st -y,R19
04FE 2A93 st -y,R18
0500 1A93 st -y,R17
0502 0A93 st -y,R16
0504 FE01 movw R30,R28
0506 ; stack offset 4
0506 2484 ldd R2,z+12
0508 3584 ldd R3,z+13
050A 4684 ldd R4,z+14
050C 5784 ldd R5,z+15
050E 5A92 st -y,R5
0510 4A92 st -y,R4
0512 3A92 st -y,R3
0514 2A92 st -y,R2
0516 0E940000 xcall empy32f
051A FE01 movw R30,R28
051C 0083 std z+0,R16
051E 1183 std z+1,R17
0520 2283 std z+2,R18
0522 3383 std z+3,R19
0524 FE01 movw R30,R28
0526 2080 ldd R2,z+0
0528 3180 ldd R3,z+1
052A 4280 ldd R4,z+2
052C 5380 ldd R5,z+3
052E 5A92 st -y,R5
0530 4A92 st -y,R4
0532 3A92 st -y,R3
0534 2A92 st -y,R2
0536 00E0 ldi R16,<L51
0538 10E0 ldi R17,>L51
053A 0E940000 xcall lpm32
053E 3A93 st -y,R19
0540 2A93 st -y,R18
0542 1A93 st -y,R17
0544 0A93 st -y,R16
0546 0E940000 xcall cmp32f
054A CCF0 brlt L64
054C FE01 movw R30,R28
054E 2080 ldd R2,z+0
0550 3180 ldd R3,z+1
0552 4280 ldd R4,z+2
0554 5380 ldd R5,z+3
0556 5A92 st -y,R5
0558 4A92 st -y,R4
055A 3A92 st -y,R3
055C 2A92 st -y,R2
055E 00E0 ldi R16,<L51
0560 10E0 ldi R17,>L51
0562 0E940000 xcall lpm32
0566 3A93 st -y,R19
0568 2A93 st -y,R18
056A 1A93 st -y,R17
056C 0A93 st -y,R16
056E 0E940000 xcall sub32f
0572 0E940000 xcall fp2int
0576 B801 movw R22,R16
0578 6050 subi R22,0 ; offset = 32768
057A 7048 sbci R23,128
057C 08C0 xjmp L65
057E L64:
057E FE01 movw R30,R28
0580 0081 ldd R16,z+0
0582 1181 ldd R17,z+1
0584 2281 ldd R18,z+2
0586 3381 ldd R19,z+3
0588 0E940000 xcall fp2int
058C B801 movw R22,R16
058E L65:
058E AB01 movw R20,R22
0590 .dbline 187
0590 ; point_pos=3;
0590 83E0 ldi R24,3
0592 80930100 sts _point_pos,R24
0596 .dbline 188
0596 ; Seg7_Led_Buf[3]=temp/1000;
0596 28EE ldi R18,1000
0598 33E0 ldi R19,3
059A 8A01 movw R16,R20
059C 0E940000 xcall div16u
05A0 00930300 sts _Seg7_Led_Buf+3,R16
05A4 .dbline 189
05A4 ; Seg7_Led_Buf[2]=(temp%1000)/100;
05A4 28EE ldi R18,1000
05A6 33E0 ldi R19,3
05A8 8A01 movw R16,R20
05AA 0E940000 xcall mod16u
05AE 24E6 ldi R18,100
05B0 30E0 ldi R19,0
05B2 0E940000 xcall div16u
05B6 00930200 sts _Seg7_Led_Buf+2,R16
05BA .dbline 190
05BA ; Seg7_Led_Buf[1]=(temp%100)/10;
05BA 24E6 ldi R18,100
05BC 30E0 ldi R19,0
05BE 8A01 movw R16,R20
05C0 0E940000 xcall mod16u
05C4 2AE0 ldi R18,10
05C6 30E0 ldi R19,0
05C8 0E940000 xcall div16u
05CC 00930100 sts _Seg7_Led_Buf+1,R16
05D0 .dbline 191
05D0 ; Seg7_Led_Buf[0]=temp%10;
05D0 2AE0 ldi R18,10
05D2 30E0 ldi R19,0
05D4 8A01 movw R16,R20
05D6 0E940000 xcall mod16u
05DA 00930000 sts _Seg7_Led_Buf,R16
05DE .dbline 192
05DE ; Seg7_Led_Update();
05DE 2DDD xcall _Seg7_Led_Update
05E0 .dbline 193
05E0 ; }
05E0 L56:
05E0 L46:
05E0 L43:
05E0 .dbline 194
05E0 ; point=0;
05E0 2224 clr R2
05E2 20920000 sts _point,R2
05E6 .dbline -2
05E6 L40:
05E6 2496 adiw R28,4
05E8 0E940000 xcall pop_gset2
05EC 2496 adiw R28,4
05EE .dbline 0 ; func end
05EE 0895 ret
05F0 .dbsym r temp 20 i
05F0 .dbsym l data 8 D
05F0 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\EEPROM_HC595\source\lib\hc595.c
0000 _Seg7_Led_Buf::
0000 .blkb 4
0004 .dbsym e Seg7_Led_Buf _Seg7_Led_Buf A[4:4]c
.area lit(rom, con, rel)
0011 L66:
0011 00007A44 .word 0x0,0x447a
0015 L60:
0015 0000C842 .word 0x0,0x42c8
0019 L57:
0019 00001041 .word 0x0,0x4110
001D L51:
001D 00000047 .word 0x0,0x4700
0021 L50:
0021 00002041 .word 0x0,0x4120
0025 L47:
0025 0000C642 .word 0x0,0x42c6
0029 L44:
0029 00C07944 .word 0xc000,0x4479
002D L41:
002D ACC52737 .word 0xc5ac,0x3727
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -