📄 adc0809.lst
字号:
00EB BA21 OUT 0x11,R2
00EC 9508 RET
(0017) }
(0018)
(0019) //call this routine to initialize all peripherals
(0020) void init_devices(void)
(0021) {
(0022) //stop errant interrupts until set up
(0023) CLI(); //disable all interrupts
_init_devices:
00ED 94F8 BCLR 7
(0024) port_init();
00EE DFF5 RCALL _port_init
(0025) spi_init();
00EF DFD1 RCALL _spi_init
(0026)
(0027) MCUCR = 0x00;
00F0 2422 CLR R2
00F1 BE25 OUT 0x35,R2
(0028) GICR = 0x00;
00F2 BE2B OUT 0x3B,R2
(0029) TIMSK = 0x00; //timer interrupt sources
00F3 BE29 OUT 0x39,R2
(0030) SEI(); //re-enable interrupts
00F4 9478 BSET 7
00F5 9508 RET
_main:
su --> Y+2
00F6 9726 SBIW R28,6
(0031) //all peripherals are now initialized
(0032) }
(0033)
(0034) void main(void)
(0035) {
(0036) unsigned long su;
(0037) init_devices();
00F7 DFF5 RCALL _init_devices
00F8 C01E RJMP 0x0117
(0038) while(1)
(0039) {
(0040) su=ADC0909(0);
00F9 2700 CLR R16
00FA DF50 RCALL _ADC0909
00FB 0118 MOVW R2,R16
00FC 2444 CLR R4
00FD FC37 SBRC R3,7
00FE 9440 COM R4
00FF 2455 CLR R5
0100 FC47 SBRC R4,7
0101 9450 COM R5
0102 01FE MOVW R30,R28
0103 8222 STD Z+2,R2
0104 8233 STD Z+3,R3
0105 8244 STD Z+4,R4
0106 8255 STD Z+5,R5
(0041) process(su,data);
0107 E68A LDI R24,0x6A
0108 E090 LDI R25,0
0109 8399 STD Y+1,R25
010A 8388 STD Y+0,R24
010B 01FE MOVW R30,R28
010C 8102 LDD R16,Z+2
010D 8113 LDD R17,Z+3
010E 8124 LDD R18,Z+4
010F 8135 LDD R19,Z+5
0110 DF81 RCALL _process
(0042) display(data);
0111 E60A LDI R16,0x6A
0112 E010 LDI R17,0
0113 DFB9 RCALL _display
(0043) delayms(100);
FILE: <library>
0114 E604 LDI R16,0x64
0115 E010 LDI R17,0
0116 DF23 RCALL _delayms
0117 CFE1 RJMP 0x00F9
0118 9626 ADIW R28,6
0119 9508 RET
push_arg4:
011A 933A ST R19,-Y
011B 932A ST R18,-Y
push_arg2:
011C 931A ST R17,-Y
011D 930A ST R16,-Y
011E 9508 RET
div32u:
011F 94E8 BCLR 6
0120 C001 RJMP 0x0122
mod32u:
0121 9468 BSET 6
0122 D02F RCALL long_div_prolog
0123 24CC CLR R12
0124 C008 RJMP 0x012D
div32s:
0125 94E8 BCLR 6
0126 C001 RJMP 0x0128
mod32s:
0127 9468 BSET 6
0128 D029 RCALL long_div_prolog
0129 FD37 SBRC R19,7
012A D045 RCALL neg_R16_R19
012B FDB7 SBRC R27,7
012C D04C RCALL neg_R24_R27
012D 2477 CLR R7
012E 2488 CLR R8
012F 2499 CLR R9
0130 24AA CLR R10
0131 24BB CLR R11
0132 D033 RCALL tst_R16_R19
0133 F0C1 BEQ 0x014C
0134 D036 RCALL tst_R24_R27
0135 F0B1 BEQ 0x014C
0136 E2E8 LDI R30,0x28
0137 0F00 LSL R16
0138 1F11 ROL R17
0139 1F22 ROL R18
013A 1F33 ROL R19
013B 1C77 ROL R7
013C 1C88 ROL R8
013D 1C99 ROL R9
013E 1CAA ROL R10
013F 1CBB ROL R11
0140 1688 CP R8,R24
0141 0699 CPC R9,R25
0142 06AA CPC R10,R26
0143 06BB CPC R11,R27
0144 F028 BCS 0x014A
0145 1A88 SUB R8,R24
0146 0A99 SBC R9,R25
0147 0AAA SBC R10,R26
0148 0ABB SBC R11,R27
0149 9503 INC R16
014A 95EA DEC R30
014B F759 BNE 0x0137
014C F426 BRTC 0x0151
014D 2D08 MOV R16,R8
014E 2D19 MOV R17,R9
014F 2D2A MOV R18,R10
0150 2D3B MOV R19,R11
0151 C00C RJMP long_div_epilog
long_div_prolog:
0152 927A ST R7,-Y
0153 D0B9 RCALL 0x020D
0154 92CA ST R12,-Y
0155 D0A6 RCALL 0x01FC
0156 858B LDD R24,Y+11
0157 859C LDD R25,Y+12
0158 85AD LDD R26,Y+13
0159 85BE LDD R27,Y+14
015A 2EC3 MOV R12,R19
015B F00E BRTS 0x015D
015C 26CB EOR R12,R27
015D 9508 RET
long_div_epilog:
015E FCC7 SBRC R12,7
015F D010 RCALL neg_R16_R19
0160 D0A1 RCALL 0x0202
0161 90C9 LD R12,Y+
0162 D0A5 RCALL 0x0208
0163 9079 LD R7,Y+
0164 9624 ADIW R28,4
0165 9508 RET
tst_R16_R19:
0166 2FE0 MOV R30,R16
0167 2BE1 OR R30,R17
0168 2BE2 OR R30,R18
0169 2BE3 OR R30,R19
016A 9508 RET
tst_R24_R27:
016B 2FE8 MOV R30,R24
016C 2BE9 OR R30,R25
016D 2BEA OR R30,R26
016E 2BEB OR R30,R27
016F 9508 RET
neg_R16_R19:
0170 9500 COM R16
0171 9510 COM R17
0172 9520 COM R18
0173 9530 COM R19
0174 5F0F SUBI R16,0xFF
0175 4F1F SBCI R17,0xFF
0176 4F2F SBCI R18,0xFF
0177 4F3F SBCI R19,0xFF
0178 9508 RET
neg_R24_R27:
0179 9580 COM R24
017A 9590 COM R25
017B 95A0 COM R26
017C 95B0 COM R27
017D 5F8F SUBI R24,0xFF
017E 4F9F SBCI R25,0xFF
017F 4FAF SBCI R26,0xFF
0180 4FBF SBCI R27,0xFF
0181 9508 RET
empy32s:
empy32u:
0182 D04E RCALL long_prolog
0183 927F PUSH R7
0184 D057 RCALL tstzero1
0185 F131 BEQ 0x01AC
0186 2477 CLR R7
0187 D05A RCALL tstzero2
0188 F419 BNE 0x018C
0189 018C MOVW R16,R24
018A 019D MOVW R18,R26
018B C020 RJMP 0x01AC
018C 9F08 MUL R16,R24
018D 2CB0 MOV R11,R0
018E 2CA1 MOV R10,R1
018F 9F28 MUL R18,R24
0190 2C90 MOV R9,R0
0191 2C81 MOV R8,R1
0192 9F18 MUL R17,R24
0193 0CA0 ADD R10,R0
0194 1C91 ADC R9,R1
0195 1C87 ADC R8,R7
0196 9F09 MUL R16,R25
0197 0CA0 ADD R10,R0
0198 1C91 ADC R9,R1
0199 1C87 ADC R8,R7
019A 9F19 MUL R17,R25
019B 0C90 ADD R9,R0
019C 1C81 ADC R8,R1
019D 9F0A MUL R16,R26
019E 0C90 ADD R9,R0
019F 1C81 ADC R8,R1
01A0 9F38 MUL R19,R24
01A1 0C80 ADD R8,R0
01A2 9F29 MUL R18,R25
01A3 0C80 ADD R8,R0
01A4 9F1A MUL R17,R26
01A5 0C80 ADD R8,R0
01A6 9F0B MUL R16,R27
01A7 0C80 ADD R8,R0
01A8 2D0B MOV R16,R11
01A9 2D1A MOV R17,R10
01AA 2D29 MOV R18,R9
01AB 2D38 MOV R19,R8
01AC 907F POP R7
01AD C02A RJMP long_epilog
pop_gset2:
01AE E0E2 LDI R30,2
01AF C00E RJMP pop
pop_gset3:
01B0 E0E4 LDI R30,4
01B1 C00C RJMP pop
push_gset5:
01B2 92FA ST R15,-Y
01B3 92EA ST R14,-Y
push_gset4:
01B4 92DA ST R13,-Y
01B5 92CA ST R12,-Y
push_gset3:
01B6 92BA ST R11,-Y
01B7 92AA ST R10,-Y
push_gset2:
01B8 937A ST R23,-Y
01B9 936A ST R22,-Y
push_gset1:
01BA 935A ST R21,-Y
01BB 934A ST R20,-Y
01BC 9508 RET
pop_gset1:
01BD E0E1 LDI R30,1
pop:
01BE 9149 LD R20,Y+
01BF 9159 LD R21,Y+
01C0 FDE0 SBRC R30,0
01C1 9508 RET
01C2 9169 LD R22,Y+
01C3 9179 LD R23,Y+
01C4 FDE1 SBRC R30,1
01C5 9508 RET
01C6 90A9 LD R10,Y+
01C7 90B9 LD R11,Y+
01C8 FDE2 SBRC R30,2
01C9 9508 RET
01CA 90C9 LD R12,Y+
01CB 90D9 LD R13,Y+
01CC FDE3 SBRC R30,3
01CD 9508 RET
01CE 90E9 LD R14,Y+
01CF 90F9 LD R15,Y+
01D0 9508 RET
long_prolog:
01D1 D03B RCALL 0x020D
01D2 D029 RCALL 0x01FC
01D3 8589 LDD R24,Y+9
01D4 859A LDD R25,Y+10
01D5 85AB LDD R26,Y+11
01D6 85BC LDD R27,Y+12
01D7 9508 RET
long_epilog:
01D8 D029 RCALL 0x0202
01D9 D02E RCALL 0x0208
01DA 9624 ADIW R28,4
01DB 9508 RET
tstzero1:
01DC 27EE CLR R30
01DD 2BE0 OR R30,R16
01DE 2BE1 OR R30,R17
01DF 2BE2 OR R30,R18
01E0 2BE3 OR R30,R19
01E1 9508 RET
tstzero2:
01E2 27EE CLR R30
01E3 2BE8 OR R30,R24
01E4 2BE9 OR R30,R25
01E5 2BEA OR R30,R26
01E6 2BEB OR R30,R27
01E7 9508 RET
<created procedures>:
01E8 E060 LDI R22,0
01E9 E070 LDI R23,0
01EA 01FE MOVW R30,R28
01EB 8026 LDD R2,Z+6
01EC 8037 LDD R3,Z+7
01ED 8440 LDD R4,Z+8
01EE 8451 LDD R5,Z+9
01EF 937A ST R23,-Y
01F0 936A ST R22,-Y
01F1 935A ST R21,-Y
01F2 934A ST R20,-Y
01F3 0181 MOVW R16,R2
01F4 0192 MOVW R18,R4
01F5 9508 RET
01F6 01FE MOVW R30,R28
01F7 8306 STD Z+6,R16
01F8 8317 STD Z+7,R17
01F9 8720 STD Z+8,R18
01FA 8731 STD Z+9,R19
01FB 9508 RET
01FC 93EA ST R30,-Y
01FD 938A ST R24,-Y
01FE 939A ST R25,-Y
01FF 93AA ST R26,-Y
0200 93BA ST R27,-Y
0201 9508 RET
0202 91B9 LD R27,Y+
0203 91A9 LD R26,Y+
0204 9199 LD R25,Y+
0205 9189 LD R24,Y+
0206 91E9 LD R30,Y+
0207 9508 RET
0208 90B9 LD R11,Y+
0209 90A9 LD R10,Y+
020A 9099 LD R9,Y+
020B 9089 LD R8,Y+
020C 9508 RET
020D 928A ST R8,-Y
020E 929A ST R9,-Y
020F 92AA ST R10,-Y
0210 92BA ST R11,-Y
0211 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -