📄 test_c.lst
字号:
00CC 3066 CPI R22,6
00CD F370 BCS 0x00BC
(0076) }
(0077) send_byte(disp_table[buffer/10]);
00CE E02A LDI R18,0xA
00CF E030 LDI R19,0
00D0 2D0A MOV R16,R10
00D1 2711 CLR R17
00D2 D05B RCALL div16s
00D3 01F8 MOVW R30,R16
00D4 E680 LDI R24,0x60
00D5 E090 LDI R25,0
00D6 0FE8 ADD R30,R24
00D7 1FF9 ADC R31,R25
00D8 8100 LDD R16,Z+0
00D9 DFA4 RCALL _send_byte
(0078) send_byte(disp_table[buffer%10]);
00DA E02A LDI R18,0xA
00DB E030 LDI R19,0
00DC 2D0A MOV R16,R10
00DD 2711 CLR R17
00DE D04B RCALL mod16s
00DF 01F8 MOVW R30,R16
00E0 E680 LDI R24,0x60
00E1 E090 LDI R25,0
00E2 0FE8 ADD R30,R24
00E3 1FF9 ADC R31,R25
00E4 8100 LDD R16,Z+0
00E5 DF98 RCALL _send_byte
(0079) send_byte(0x00);
00E6 2700 CLR R16
00E7 DF96 RCALL _send_byte
(0080) send_byte(0x00);
00E8 2700 CLR R16
00E9 DF94 RCALL _send_byte
(0081) send_byte(0x00);
00EA 2700 CLR R16
00EB DF92 RCALL _send_byte
(0082) for(i=0;i<6;i++)
00EC 2766 CLR R22
00ED C012 RJMP 0x0100
(0083) send_byte(disp_table[temp[5-i]]);
00EE 2E26 MOV R2,R22
00EF 2433 CLR R3
00F0 E0E5 LDI R30,5
00F1 E0F0 LDI R31,0
00F2 19E2 SUB R30,R2
00F3 09F3 SBC R31,R3
00F4 01CE MOVW R24,R28
00F5 0FE8 ADD R30,R24
00F6 1FF9 ADC R31,R25
00F7 81E0 LDD R30,Z+0
00F8 27FF CLR R31
00F9 E680 LDI R24,0x60
00FA E090 LDI R25,0
00FB 0FE8 ADD R30,R24
00FC 1FF9 ADC R31,R25
00FD 8100 LDD R16,Z+0
00FE DF7F RCALL _send_byte
00FF 9563 INC R22
0100 3066 CPI R22,6
0101 F360 BCS 0x00EE
(0084) break;
(0085) }
(0086) }
(0087) PORTC=1<<4;
0102 E180 LDI R24,0x10
0103 BB85 OUT 0x15,R24
(0088) }
0104 9626 ADIW R28,6
0105 D06F RCALL pop_gset3
0106 9508 RET
(0089) void delay_1ms(void)//1ms延时函数
(0090) {
(0091) unsigned int i;
(0092) for (i=0;i<150;i++)
_delay_1ms:
i --> R16
0107 2700 CLR R16
0108 2711 CLR R17
0109 C003 RJMP 0x010D
(0093) {
(0094) WDR();
010A 95A8 WDR
010B 5F0F SUBI R16,0xFF
010C 4F1F SBCI R17,0xFF
010D 3906 CPI R16,0x96
010E E0E0 LDI R30,0
010F 071E CPC R17,R30
0110 F3C8 BCS 0x010A
(0095) }
(0096) }
0111 9508 RET
_delay_nms:
i --> R20
n --> R22
0112 D07B RCALL push_gset2
0113 01B8 MOVW R22,R16
(0097) void delay_nms(unsigned int n)//延时n毫秒
(0098) {
(0099) unsigned int i;
(0100) for (i=0;i<n;i++)//执行n次1毫秒延时
0114 2744 CLR R20
0115 2755 CLR R21
0116 C003 RJMP 0x011A
(0101) delay_1ms();
0117 DFEF RCALL _delay_1ms
0118 5F4F SUBI R20,0xFF
0119 4F5F SBCI R21,0xFF
011A 1746 CP R20,R22
011B 0757 CPC R21,R23
011C F3D0 BCS 0x0117
(0102) WDR();
011D 95A8 WDR
(0103) }
011E D054 RCALL pop_gset2
011F 9508 RET
_adc_isr:
0120 938A ST R24,-Y
0121 B78F IN R24,0x3F
0122 938A ST R24,-Y
(0104) //ADC完成中断
(0105) #pragma interrupt_handler adc_isr:iv_ADC
(0106) void adc_isr(void)
(0107) {
(0108) ADMUX =(1<<REFS0)|(1<<REFS1)|(1<<MUX1)|(1<<MUX0);
0123 EC83 LDI R24,0xC3
0124 B987 OUT 0x07,R24
(0109) ADCSRA|=(1<<ADSC);//启动AD转换
0125 9A36 SBI 0x06,6
(0110) }
FILE: <library>
0126 9189 LD R24,Y+
0127 BF8F OUT 0x3F,R24
0128 9189 LD R24,Y+
0129 9518 RETI
mod16s:
012A 9468 BSET 6
012B 92DA ST R13,-Y
012C 2ED1 MOV R13,R17
012D C004 RJMP 0x0132
div16s:
012E 94E8 BCLR 6
012F 92DA ST R13,-Y
0130 2ED1 MOV R13,R17
0131 26D3 EOR R13,R19
0132 FF17 SBRS R17,7
0133 C004 RJMP 0x0138
0134 9510 COM R17
0135 9500 COM R16
0136 5F0F SUBI R16,0xFF
0137 4F1F SBCI R17,0xFF
0138 FF37 SBRS R19,7
0139 C004 RJMP 0x013E
013A 9530 COM R19
013B 9520 COM R18
013C 5F2F SUBI R18,0xFF
013D 4F3F SBCI R19,0xFF
013E D00B RCALL xdiv16u
013F FED7 SBRS R13,7
0140 C004 RJMP 0x0145
0141 9510 COM R17
0142 9500 COM R16
0143 5F0F SUBI R16,0xFF
0144 4F1F SBCI R17,0xFF
0145 90D9 LD R13,Y+
0146 9508 RET
mod16u:
0147 9468 BSET 6
0148 C001 RJMP xdiv16u
div16u:
0149 94E8 BCLR 6
xdiv16u:
014A 92EA ST R14,-Y
014B 92FA ST R15,-Y
014C 938A ST R24,-Y
014D 24EE CLR R14
014E 24FF CLR R15
014F E180 LDI R24,0x10
0150 0F00 LSL R16
0151 1F11 ROL R17
0152 1CEE ROL R14
0153 1CFF ROL R15
0154 16E2 CP R14,R18
0155 06F3 CPC R15,R19
0156 F018 BCS 0x015A
0157 1AE2 SUB R14,R18
0158 0AF3 SBC R15,R19
0159 9503 INC R16
015A 958A DEC R24
015B F7A1 BNE 0x0150
015C F416 BRTC 0x015F
015D 2D0E MOV R16,R14
015E 2D1F MOV R17,R15
015F 9189 LD R24,Y+
0160 90F9 LD R15,Y+
0161 90E9 LD R14,Y+
0162 9508 RET
empy16s:
0163 920A ST R0,-Y
0164 921A ST R1,-Y
0165 938A ST R24,-Y
0166 939A ST R25,-Y
0167 9F02 MUL R16,R18
0168 01C0 MOVW R24,R0
0169 9F12 MUL R17,R18
016A 0D90 ADD R25,R0
016B 9F03 MUL R16,R19
016C 0D90 ADD R25,R0
016D 018C MOVW R16,R24
016E 9199 LD R25,Y+
016F 9189 LD R24,Y+
0170 9019 LD R1,Y+
0171 9009 LD R0,Y+
0172 9508 RET
pop_gset2:
0173 E0E2 LDI R30,2
0174 C006 RJMP pop
pop_gset3:
0175 E0E4 LDI R30,4
0176 C004 RJMP pop
push_gset1:
0177 935A ST R21,-Y
0178 934A ST R20,-Y
0179 9508 RET
pop_gset1:
017A E0E1 LDI R30,1
pop:
017B 9149 LD R20,Y+
017C 9159 LD R21,Y+
017D FDE0 SBRC R30,0
017E 9508 RET
017F 9169 LD R22,Y+
0180 9179 LD R23,Y+
0181 FDE1 SBRC R30,1
0182 9508 RET
0183 90A9 LD R10,Y+
0184 90B9 LD R11,Y+
0185 FDE2 SBRC R30,2
0186 9508 RET
0187 90C9 LD R12,Y+
0188 90D9 LD R13,Y+
0189 FDE3 SBRC R30,3
018A 9508 RET
018B 90E9 LD R14,Y+
018C 90F9 LD R15,Y+
018D 9508 RET
push_gset2:
018E 937A ST R23,-Y
018F 936A ST R22,-Y
0190 CFE6 RJMP push_gset1
push_gset3:
0191 92BA ST R11,-Y
0192 92AA ST R10,-Y
0193 CFFA RJMP push_gset2
lsl8:
0194 2311 TST R17
0195 F019 BEQ 0x0199
0196 0F00 LSL R16
0197 951A DEC R17
0198 CFFB RJMP lsl8
0199 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -