📄 cycle_1.lst
字号:
(0082) }
(0083) /**************************************
(0084) 捕捉中断处理程序
(0085) **************************************/
(0086) void Icp_timer1(void)
(0087) {
(0088) if (TCCR1B&0x40)
00DC B42E IN R2,P2E
00DD FE26 SBRS R2,6
00DE C007 RJMP 0x00E6
(0089) count_l=ICR1; //脉冲低电平宽度
00DF B424 IN R2,P24
00E0 B435 IN R3,P25
00E1 92300069 STS R3,_count_l+1
00E3 92200068 STS R2,_count_l
00E5 C006 RJMP 0x00EC
(0090) else
(0091) count_h=ICR1; //脉冲高电平宽度
00E6 B424 IN R2,P24
00E7 B435 IN R3,P25
00E8 92300067 STS R3,_count_h+1
00EA 92200066 STS R2,_count_h
(0092) ICR1=0;
00EC 2422 CLR R2
00ED 2433 CLR R3
00EE 92300045 STS R3,0x45
00F0 92200044 STS R2,0x44
(0093) TCNT1=0;
00F2 9230004D STS R3,0x4D
00F4 9220004C STS R2,0x4C
(0094) TCCR1B^=0x40;
00F6 E480 LDI R24,0x40
00F7 B42E IN R2,P2E
00F8 2628 EOR R2,R24
00F9 BC2E OUT P2E,R2
(0095) }
FILE: <library>
00FA 9029 LD R2,Y+
00FB BE2F OUT P3F,R2
00FC 9189 LD R24,Y+
00FD 9039 LD R3,Y+
00FE 9029 LD R2,Y+
00FF 9518 RETI
mpy16s:
0100 920A ST R0,-Y
0101 921A ST R1,-Y
0102 2400 CLR R0
0103 2411 CLR R1
0104 3000 CPI R16,0
0105 0701 CPC R16,R17
0106 F041 BEQ 0x010F
0107 9516 LSR R17
0108 9507 ROR R16
0109 F410 BCC 0x010C
010A 0E02 ADD R0,R18
010B 1E13 ADC R1,R19
010C 0F22 LSL R18
010D 1F33 ROL R19
010E CFF5 RJMP 0x0104
010F 2D00 MOV R16,R0
0110 2D11 MOV R17,R1
0111 9019 LD R1,Y+
0112 9009 LD R0,Y+
0113 9508 RET
mod16u:
0114 9468 BSET 6
0115 C001 RJMP 0x0117
div16u:
0116 94E8 BCLR 6
0117 92EA ST R14,-Y
0118 92FA ST R15,-Y
0119 938A ST R24,-Y
011A 24EE CLR R14
011B 18FF SUB R15,R15
011C E181 LDI R24,0x11
011D 1F00 ROL R16
011E 1F11 ROL R17
011F 958A DEC R24
0120 F439 BNE 0x0128
0121 F416 BRTC 0x0124
0122 2D0E MOV R16,R14
0123 2D1F MOV R17,R15
0124 9189 LD R24,Y+
0125 90F9 LD R15,Y+
0126 90E9 LD R14,Y+
0127 9508 RET
0128 1CEE ROL R14
0129 1CFF ROL R15
012A 1AE2 SUB R14,R18
012B 0AF3 SBC R15,R19
012C F420 BCC 0x0131
012D 0EE2 ADD R14,R18
012E 1EF3 ADC R15,R19
012F 9488 BCLR 0
0130 CFEC RJMP 0x011D
0131 9408 BSET 0
0132 CFEA RJMP 0x011D
push_gset1:
0133 935A ST R21,-Y
0134 934A ST R20,-Y
0135 9508 RET
pop_gset1:
0136 E0E1 LDI R30,1
pop:
0137 9149 LD R20,Y+
0138 9159 LD R21,Y+
0139 FDE0 SBRC R30,0
013A 9508 RET
013B 9169 LD R22,Y+
013C 9179 LD R23,Y+
013D FDE1 SBRC R30,1
013E 9508 RET
013F 90A9 LD R10,Y+
0140 90B9 LD R11,Y+
0141 FDE2 SBRC R30,2
0142 9508 RET
0143 90C9 LD R12,Y+
0144 90D9 LD R13,Y+
0145 FDE3 SBRC R30,3
0146 9508 RET
0147 90E9 LD R14,Y+
0148 90F9 LD R15,Y+
0149 9508 RET
push_gset2:
014A 937A ST R23,-Y
014B 936A ST R22,-Y
014C CFE6 RJMP push_gset1
push_gset3:
014D 92BA ST R11,-Y
014E 92AA ST R10,-Y
014F CFFA RJMP push_gset2
pop_gset3:
0150 E0E4 LDI R30,4
0151 CFE5 RJMP pop
lsl8:
0152 2311 TST R17
0153 F019 BEQ 0x0157
0154 0F00 LSL R16
0155 951A DEC R17
0156 CFFB RJMP lsl8
0157 9508 RET
copy_quot:
0158 2D08 MOV R16,R8
0159 2D19 MOV R17,R9
015A 2D2A MOV R18,R10
015B 2D3B MOV R19,R11
015C 9508 RET
long_prolog:
015D 928A ST R8,-Y
015E 929A ST R9,-Y
015F 92AA ST R10,-Y
0160 92BA ST R11,-Y
0161 93EA ST R30,-Y
0162 92CA ST R12,-Y
0163 938A ST R24,-Y
0164 939A ST R25,-Y
0165 93AA ST R26,-Y
0166 93BA ST R27,-Y
0167 858A LDD R24,10+Y
0168 859B LDD R25,11+Y
0169 85AC LDD R26,12+Y
016A 85BD LDD R27,13+Y
016B 9508 RET
long_epilog:
016C 91B9 LD R27,Y+
016D 91A9 LD R26,Y+
016E 9199 LD R25,Y+
016F 9189 LD R24,Y+
0170 90C9 LD R12,Y+
0171 91E9 LD R30,Y+
0172 90B9 LD R11,Y+
0173 90A9 LD R10,Y+
0174 9099 LD R9,Y+
0175 9089 LD R8,Y+
0176 9624 ADIW R28,4
0177 9508 RET
NEGMANT1:
0178 9500 COM R16
0179 9510 COM R17
017A 9520 COM R18
017B 9530 COM R19
017C 5F0F SUBI R16,0xFF
017D 4F1F SBCI R17,0xFF
017E 4F2F SBCI R18,0xFF
017F 4F3F SBCI R19,0xFF
0180 9508 RET
NEGMANT2:
0181 9580 COM R24
0182 9590 COM R25
0183 95A0 COM R26
0184 95B0 COM R27
0185 5F8F SUBI R24,0xFF
0186 4F9F SBCI R25,0xFF
0187 4FAF SBCI R26,0xFF
0188 4FBF SBCI R27,0xFF
0189 9508 RET
TSTZERO1:
tstzero1:
018A 24CC CLR R12
018B 2AC0 OR R12,R16
018C 2AC1 OR R12,R17
018D 2AC2 OR R12,R18
018E 2AC3 OR R12,R19
018F 9508 RET
TSTZERO2:
tstzero2:
0190 24CC CLR R12
0191 2AC8 OR R12,R24
0192 2AC9 OR R12,R25
0193 2ACA OR R12,R26
0194 2ACB OR R12,R27
0195 9508 RET
div32s:
0196 DFC6 RCALL long_prolog
0197 D00C RCALL SDIV
0198 CFD3 RJMP long_epilog
div32u:
0199 DFC3 RCALL long_prolog
019A D014 RCALL UDIV
019B CFD0 RJMP long_epilog
mod32s:
019C DFC0 RCALL long_prolog
019D D006 RCALL SDIV
019E DFB9 RCALL copy_quot
019F CFCC RJMP long_epilog
mod32u:
01A0 DFBC RCALL long_prolog
01A1 D00D RCALL UDIV
01A2 DFB5 RCALL copy_quot
01A3 CFC8 RJMP long_epilog
SDIV:
01A4 2333 TST R19
01A5 F02A BMI 0x01AB
01A6 23BB TST R27
01A7 F43A BPL 0x01AF
01A8 DFD8 RCALL NEGMANT2
01A9 D005 RCALL UDIV
01AA CFCD RJMP NEGMANT1
01AB DFCC RCALL NEGMANT1
01AC 23BB TST R27
01AD F7DA BPL 0x01A9
01AE DFD2 RCALL NEGMANT2
UDIV:
01AF DFE0 RCALL TSTZERO2
01B0 F131 BEQ 0x01D7
01B1 DFD8 RCALL TSTZERO1
01B2 F101 BEQ 0x01D3
01B3 2488 CLR R8
01B4 2499 CLR R9
01B5 24AA CLR R10
01B6 24BB CLR R11
01B7 0F00 LSL R16
01B8 1F11 ROL R17
01B9 1F22 ROL R18
01BA 1F33 ROL R19
01BB E2E0 LDI R30,0x20
01BC 1C88 ROL R8
01BD 1C99 ROL R9
01BE 1CAA ROL R10
01BF 1CBB ROL R11
01C0 1688 CP R8,R24
01C1 0699 CPC R9,R25
01C2 06AA CPC R10,R26
01C3 06BB CPC R11,R27
01C4 F030 BCS 0x01CB
01C5 1A88 SUB R8,R24
01C6 0A99 SBC R9,R25
01C7 0AAA SBC R10,R26
01C8 0ABB SBC R11,R27
01C9 9408 BSET 0
01CA C001 RJMP 0x01CC
01CB 9488 BCLR 0
01CC 1F00 ROL R16
01CD 1F11 ROL R17
01CE 1F22 ROL R18
01CF 1F33 ROL R19
01D0 95EA DEC R30
01D1 F751 BNE 0x01BC
01D2 9508 RET
01D3 2488 CLR R8
01D4 2499 CLR R9
01D5 24AA CLR R10
01D6 24BB CLR R11
01D7 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -