📄 atmega16_8led.lst
字号:
0110 DFE8 RCALL _out_595
(0087) delay_nms (2);
0111 E002 LDI R16,2
0112 E010 LDI R17,0
0113 DF6B RCALL _delay_nms
0114 9543 INC R20
0115 3044 CPI R20,4
0116 F348 BCS 0x0100
0117 940E021D CALL pop_gset1
0119 9508 RET
_display_off:
i --> R20
011A 940E021A CALL push_gset1
(0088) }
(0089) }
(0090)
(0091) void display_off ()
(0092) {
(0093) uchar i;
(0094) for (i=0;i<4;i++)
011C 2744 CLR R20
011D C015 RJMP 0x0133
(0095) {
(0096) write_595 (seg[i]);
011E E685 LDI R24,0x65
011F E090 LDI R25,0
0120 2FE4 MOV R30,R20
0121 27FF CLR R31
0122 0FE8 ADD R30,R24
0123 1FF9 ADC R31,R25
0124 9104 LPM R16,0(Z)
0125 DFC0 RCALL _write_595
(0097) write_595 (off[i]);
0126 E68E LDI R24,0x6E
0127 E090 LDI R25,0
0128 2FE4 MOV R30,R20
0129 27FF CLR R31
012A 0FE8 ADD R30,R24
012B 1FF9 ADC R31,R25
012C 9104 LPM R16,0(Z)
012D DFB8 RCALL _write_595
(0098) out_595 ();
012E DFCA RCALL _out_595
(0099) delay_nms (2);
012F E002 LDI R16,2
0130 E010 LDI R17,0
0131 DF4D RCALL _delay_nms
0132 9543 INC R20
0133 3044 CPI R20,4
0134 F348 BCS 0x011E
0135 940E021D CALL pop_gset1
0137 9508 RET
_display_on:
i --> R20
0138 940E021A CALL push_gset1
(0100) }
(0101) }
(0102)
(0103) void display_on ()
(0104) {
(0105) uchar i;
(0106) for (i=0;i<4;i++)
013A 2744 CLR R20
013B C015 RJMP 0x0151
(0107) {
(0108) write_595 (seg[i]);
013C E685 LDI R24,0x65
013D E090 LDI R25,0
013E 2FE4 MOV R30,R20
013F 27FF CLR R31
0140 0FE8 ADD R30,R24
0141 1FF9 ADC R31,R25
0142 9104 LPM R16,0(Z)
0143 DFA2 RCALL _write_595
(0109) write_595 (on[i]);
0144 E786 LDI R24,0x76
0145 E090 LDI R25,0
0146 2FE4 MOV R30,R20
0147 27FF CLR R31
0148 0FE8 ADD R30,R24
0149 1FF9 ADC R31,R25
014A 9104 LPM R16,0(Z)
014B DF9A RCALL _write_595
(0110) out_595 ();
014C DFAC RCALL _out_595
(0111) delay_nms (2);
014D E002 LDI R16,2
014E E010 LDI R17,0
014F DF2F RCALL _delay_nms
0150 9543 INC R20
0151 3044 CPI R20,4
0152 F348 BCS 0x013C
0153 940E021D CALL pop_gset1
0155 9508 RET
(0112) }
(0113) }
(0114)
(0115) void main ()
(0116) {
(0117) init_devices();
_main:
0156 DF3C RCALL _init_devices
(0118) number=0;
0157 2422 CLR R2
0158 2433 CLR R3
0159 92300069 STS number+1,R3
015B 92200068 STS number,R2
015D C036 RJMP 0x0194
(0119) while (1)
(0120) {
(0121) number++;
015E 91800068 LDS R24,number
0160 91900069 LDS R25,number+1
0162 9601 ADIW R24,1
0163 93900069 STS number+1,R25
0165 93800068 STS number,R24
(0122) BINtoBCD(number);
0167 011C MOVW R2,R24
0168 2444 CLR R4
0169 2455 CLR R5
016A 0181 MOVW R16,R2
016B 0192 MOVW R18,R4
016C DF2E RCALL _BINtoBCD
(0123) for (i=0;i<125;i++)
016D 2422 CLR R2
016E 2433 CLR R3
016F 9230006B STS i+1,R3
0171 9220006A STS i,R2
0173 C00A RJMP 0x017E
(0124) display ();
0174 DF87 RCALL _display
0175 9180006A LDS R24,i
0177 9190006B LDS R25,i+1
0179 9601 ADIW R24,1
017A 9390006B STS i+1,R25
017C 9380006A STS i,R24
017E 9180006A LDS R24,i
0180 9190006B LDS R25,i+1
0182 378D CPI R24,0x7D
0183 E0E0 LDI R30,0
0184 079E CPC R25,R30
0185 F370 BCS 0x0174
(0125) if (number>=9999) number=0;
FILE: <library>
0186 91800068 LDS R24,number
0188 91900069 LDS R25,number+1
018A 308F CPI R24,0xF
018B E2E7 LDI R30,0x27
018C 079E CPC R25,R30
018D F030 BCS 0x0194
018E 2422 CLR R2
018F 2433 CLR R3
0190 92300069 STS number+1,R3
0192 92200068 STS number,R2
0194 CFC9 RJMP 0x015E
0195 9508 RET
push_arg4:
0196 933A ST R19,-Y
0197 932A ST R18,-Y
push_arg2:
0198 931A ST R17,-Y
0199 930A ST R16,-Y
019A 9508 RET
div32u:
019B 94E8 BCLR 6
019C C001 RJMP 0x019E
mod32u:
019D 9468 BSET 6
019E D02F RCALL long_div_prolog
019F 24CC CLR R12
01A0 C008 RJMP 0x01A9
div32s:
01A1 94E8 BCLR 6
01A2 C001 RJMP 0x01A4
mod32s:
01A3 9468 BSET 6
01A4 D029 RCALL long_div_prolog
01A5 FD37 SBRC R19,7
01A6 D053 RCALL neg_R16_R19
01A7 FDB7 SBRC R27,7
01A8 D05A RCALL neg_R24_R27
01A9 2477 CLR R7
01AA 2488 CLR R8
01AB 2499 CLR R9
01AC 24AA CLR R10
01AD 24BB CLR R11
01AE D041 RCALL tst_R16_R19
01AF F0C1 BEQ 0x01C8
01B0 D044 RCALL tst_R24_R27
01B1 F0B1 BEQ 0x01C8
01B2 E2E8 LDI R30,0x28
01B3 0F00 LSL R16
01B4 1F11 ROL R17
01B5 1F22 ROL R18
01B6 1F33 ROL R19
01B7 1C77 ROL R7
01B8 1C88 ROL R8
01B9 1C99 ROL R9
01BA 1CAA ROL R10
01BB 1CBB ROL R11
01BC 1688 CP R8,R24
01BD 0699 CPC R9,R25
01BE 06AA CPC R10,R26
01BF 06BB CPC R11,R27
01C0 F028 BCS 0x01C6
01C1 1A88 SUB R8,R24
01C2 0A99 SBC R9,R25
01C3 0AAA SBC R10,R26
01C4 0ABB SBC R11,R27
01C5 9503 INC R16
01C6 95EA DEC R30
01C7 F759 BNE 0x01B3
01C8 F426 BRTC 0x01CD
01C9 2D08 MOV R16,R8
01CA 2D19 MOV R17,R9
01CB 2D2A MOV R18,R10
01CC 2D3B MOV R19,R11
01CD C013 RJMP long_div_epilog
long_div_prolog:
01CE 927A ST R7,-Y
01CF 928A ST R8,-Y
01D0 929A ST R9,-Y
01D1 92AA ST R10,-Y
01D2 92BA ST R11,-Y
01D3 92CA ST R12,-Y
01D4 93EA ST R30,-Y
01D5 938A ST R24,-Y
01D6 939A ST R25,-Y
01D7 93AA ST R26,-Y
01D8 93BA ST R27,-Y
01D9 858B LDD R24,Y+11
01DA 859C LDD R25,Y+12
01DB 85AD LDD R26,Y+13
01DC 85BE LDD R27,Y+14
01DD 2EC3 MOV R12,R19
01DE F00E BRTS 0x01E0
01DF 26CB EOR R12,R27
01E0 9508 RET
long_div_epilog:
01E1 FCC7 SBRC R12,7
01E2 D017 RCALL neg_R16_R19
01E3 91B9 LD R27,Y+
01E4 91A9 LD R26,Y+
01E5 9199 LD R25,Y+
01E6 9189 LD R24,Y+
01E7 91E9 LD R30,Y+
01E8 90C9 LD R12,Y+
01E9 90B9 LD R11,Y+
01EA 90A9 LD R10,Y+
01EB 9099 LD R9,Y+
01EC 9089 LD R8,Y+
01ED 9079 LD R7,Y+
01EE 9624 ADIW R28,4
01EF 9508 RET
tst_R16_R19:
01F0 2FE0 MOV R30,R16
01F1 2BE1 OR R30,R17
01F2 2BE2 OR R30,R18
01F3 2BE3 OR R30,R19
01F4 9508 RET
tst_R24_R27:
01F5 2FE8 MOV R30,R24
01F6 2BE9 OR R30,R25
01F7 2BEA OR R30,R26
01F8 2BEB OR R30,R27
01F9 9508 RET
neg_R16_R19:
01FA 9500 COM R16
01FB 9510 COM R17
01FC 9520 COM R18
01FD 9530 COM R19
01FE 5F0F SUBI R16,0xFF
01FF 4F1F SBCI R17,0xFF
0200 4F2F SBCI R18,0xFF
0201 4F3F SBCI R19,0xFF
0202 9508 RET
neg_R24_R27:
0203 9580 COM R24
0204 9590 COM R25
0205 95A0 COM R26
0206 95B0 COM R27
0207 5F8F SUBI R24,0xFF
0208 4F9F SBCI R25,0xFF
0209 4FAF SBCI R26,0xFF
020A 4FBF SBCI R27,0xFF
020B 9508 RET
pop_gset2:
020C E0E2 LDI R30,2
020D 940C021E JMP pop
pop_gset4:
020F E0E8 LDI R30,0x8
0210 940C021E JMP pop
push_gset5:
0212 92FA ST R15,-Y
0213 92EA ST R14,-Y
push_gset4:
0214 92DA ST R13,-Y
0215 92CA ST R12,-Y
push_gset3:
0216 92BA ST R11,-Y
0217 92AA ST R10,-Y
push_gset2:
0218 937A ST R23,-Y
0219 936A ST R22,-Y
push_gset1:
021A 935A ST R21,-Y
021B 934A ST R20,-Y
021C 9508 RET
pop_gset1:
021D E0E1 LDI R30,1
pop:
021E 9149 LD R20,Y+
021F 9159 LD R21,Y+
0220 FDE0 SBRC R30,0
0221 9508 RET
0222 9169 LD R22,Y+
0223 9179 LD R23,Y+
0224 FDE1 SBRC R30,1
0225 9508 RET
0226 90A9 LD R10,Y+
0227 90B9 LD R11,Y+
0228 FDE2 SBRC R30,2
0229 9508 RET
022A 90C9 LD R12,Y+
022B 90D9 LD R13,Y+
022C FDE3 SBRC R30,3
022D 9508 RET
022E 90E9 LD R14,Y+
022F 90F9 LD R15,Y+
0230 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -