📄 flash.lst
字号:
(0007)
(0008) 应用软件: ICCAVR
(0009)
(0010) 版 本: Version 1.0
(0011)
(0012) 圆版时间: 2005-03-01
(0013)
(0014) 开发人员: SEE
(0015)
(0016) 说 明: 若用于商业用途,请保留此段文字或注明代码来源
(0017)
(0018) 深 圳 微 雪 电 子 保 留 所 有 的 版 权
(0019) *********************************************************************/
(0020)
(0021) /*01010101010101010101010101010101010101010101010101010101010101010101
(0022) ----------------------------------------------------------------------
(0023) 版本更新记录:
(0024)
(0025) ----------------------------------------------------------------------
(0026) 程序功能: 详见教程文档
(0027) 接入模块: 详见教程文档
(0028) 接口说明: 详见教程文档
(0029)
(0030) ----------------------------------------------------------------------
(0031) 注意事项: 详见教程文档及M16SD说明书
(0032)
(0033) ----------------------------------------------------------------------
(0034) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0035)
(0036) #include <iom16v.h>
(0037) #include "D:\ICC_H\CmmICC.H"
(0038)
(0039) #define LED_DDR DDRD
(0040) #define LED_PORT PORTD
(0041)
(0042) /*--------------------------------------------------------------------
(0043) 函数名称:
(0044) 函数功能:
(0045) 注意事项:
(0046) 提示说明:
(0047) 输 入:
(0048) 返 回:
(0049) --------------------------------------------------------------------*/
(0050) void main(void)
(0051) {
(0052) uint8 i,j;
(0053) LED_DDR=0XFF;
_main:
j --> R20
i --> R22
01FA EF8F LDI R24,0xFF
01FB BB81 OUT 0x11,R24
01FC C025 RJMP 0x0222
(0054) while(1)
(0055) {
(0056) for(i=0;i<4;i++)
01FD 2766 CLR R22
01FE C00B RJMP 0x020A
(0057) {
(0058) LED_PORT^=0xFF;
01FF EF8F LDI R24,0xFF
0200 E090 LDI R25,0
0201 B222 IN R2,0x12
0202 2433 CLR R3
0203 2628 EOR R2,R24
0204 2639 EOR R3,R25
0205 BA22 OUT 0x12,R2
(0059) delay50ms(10);
0206 E00A LDI R16,0xA
0207 E010 LDI R17,0
0208 DFDB RCALL _delay50ms
0209 9563 INC R22
020A 3064 CPI R22,4
020B F398 BCS 0x01FF
(0060) }
(0061) j=0x01;
020C E041 LDI R20,1
(0062) for(i=0;i<8;i++)
020D 2766 CLR R22
020E C006 RJMP 0x0215
(0063) {
(0064) j<<=1;
020F 0F44 LSL R20
(0065) LED_PORT=j;
0210 BB42 OUT 0x12,R20
(0066) delay50ms(10);
0211 E00A LDI R16,0xA
0212 E010 LDI R17,0
0213 DFD0 RCALL _delay50ms
0214 9563 INC R22
0215 3068 CPI R22,0x8
0216 F3C0 BCS 0x020F
(0067) }
(0068) j=0x80;
0217 E840 LDI R20,0x80
(0069) for(i=0;i<8;i++)
0218 2766 CLR R22
0219 C006 RJMP 0x0220
(0070) {
(0071) j>>=1;
021A 9546 LSR R20
(0072) LED_PORT=j;
021B BB42 OUT 0x12,R20
(0073) delay50ms(10);
FILE: <library>
021C E00A LDI R16,0xA
021D E010 LDI R17,0
021E DFC5 RCALL _delay50ms
021F 9563 INC R22
0220 3068 CPI R22,0x8
0221 F3C0 BCS 0x021A
0222 CFDA RJMP 0x01FD
0223 9508 RET
push_arg4:
0224 933A ST R19,-Y
0225 932A ST R18,-Y
push_arg2:
0226 931A ST R17,-Y
0227 930A ST R16,-Y
0228 9508 RET
div32u:
0229 94E8 BCLR 6
022A C001 RJMP 0x022C
mod32u:
022B 9468 BSET 6
022C D02F RCALL long_div_prolog
022D 24CC CLR R12
022E C008 RJMP 0x0237
div32s:
022F 94E8 BCLR 6
0230 C001 RJMP 0x0232
mod32s:
0231 9468 BSET 6
0232 D029 RCALL long_div_prolog
0233 FD37 SBRC R19,7
0234 D053 RCALL neg_R16_R19
0235 FDB7 SBRC R27,7
0236 D05A RCALL neg_R24_R27
0237 2477 CLR R7
0238 2488 CLR R8
0239 2499 CLR R9
023A 24AA CLR R10
023B 24BB CLR R11
023C D041 RCALL tst_R16_R19
023D F0C1 BEQ 0x0256
023E D044 RCALL tst_R24_R27
023F F0B1 BEQ 0x0256
0240 E2E8 LDI R30,0x28
0241 0F00 LSL R16
0242 1F11 ROL R17
0243 1F22 ROL R18
0244 1F33 ROL R19
0245 1C77 ROL R7
0246 1C88 ROL R8
0247 1C99 ROL R9
0248 1CAA ROL R10
0249 1CBB ROL R11
024A 1688 CP R8,R24
024B 0699 CPC R9,R25
024C 06AA CPC R10,R26
024D 06BB CPC R11,R27
024E F028 BCS 0x0254
024F 1A88 SUB R8,R24
0250 0A99 SBC R9,R25
0251 0AAA SBC R10,R26
0252 0ABB SBC R11,R27
0253 9503 INC R16
0254 95EA DEC R30
0255 F759 BNE 0x0241
0256 F426 BRTC 0x025B
0257 2D08 MOV R16,R8
0258 2D19 MOV R17,R9
0259 2D2A MOV R18,R10
025A 2D3B MOV R19,R11
025B C013 RJMP long_div_epilog
long_div_prolog:
025C 927A ST R7,-Y
025D 928A ST R8,-Y
025E 929A ST R9,-Y
025F 92AA ST R10,-Y
0260 92BA ST R11,-Y
0261 92CA ST R12,-Y
0262 93EA ST R30,-Y
0263 938A ST R24,-Y
0264 939A ST R25,-Y
0265 93AA ST R26,-Y
0266 93BA ST R27,-Y
0267 858B LDD R24,Y+11
0268 859C LDD R25,Y+12
0269 85AD LDD R26,Y+13
026A 85BE LDD R27,Y+14
026B 2EC3 MOV R12,R19
026C F00E BRTS 0x026E
026D 26CB EOR R12,R27
026E 9508 RET
long_div_epilog:
026F FCC7 SBRC R12,7
0270 D017 RCALL neg_R16_R19
0271 91B9 LD R27,Y+
0272 91A9 LD R26,Y+
0273 9199 LD R25,Y+
0274 9189 LD R24,Y+
0275 91E9 LD R30,Y+
0276 90C9 LD R12,Y+
0277 90B9 LD R11,Y+
0278 90A9 LD R10,Y+
0279 9099 LD R9,Y+
027A 9089 LD R8,Y+
027B 9079 LD R7,Y+
027C 9624 ADIW R28,4
027D 9508 RET
tst_R16_R19:
027E 2FE0 MOV R30,R16
027F 2BE1 OR R30,R17
0280 2BE2 OR R30,R18
0281 2BE3 OR R30,R19
0282 9508 RET
tst_R24_R27:
0283 2FE8 MOV R30,R24
0284 2BE9 OR R30,R25
0285 2BEA OR R30,R26
0286 2BEB OR R30,R27
0287 9508 RET
neg_R16_R19:
0288 9500 COM R16
0289 9510 COM R17
028A 9520 COM R18
028B 9530 COM R19
028C 5F0F SUBI R16,0xFF
028D 4F1F SBCI R17,0xFF
028E 4F2F SBCI R18,0xFF
028F 4F3F SBCI R19,0xFF
0290 9508 RET
neg_R24_R27:
0291 9580 COM R24
0292 9590 COM R25
0293 95A0 COM R26
0294 95B0 COM R27
0295 5F8F SUBI R24,0xFF
0296 4F9F SBCI R25,0xFF
0297 4FAF SBCI R26,0xFF
0298 4FBF SBCI R27,0xFF
0299 9508 RET
empy32s:
empy32u:
029A 940E02EF CALL long_prolog
029C 927F PUSH R7
029D 940E0308 CALL tstzero1
029F F139 BEQ 0x02C7
02A0 2477 CLR R7
02A1 940E030E CALL tstzero2
02A3 F419 BNE 0x02A7
02A4 018C MOVW R16,R24
02A5 019D MOVW R18,R26
02A6 C020 RJMP 0x02C7
02A7 9F08 MUL R16,R24
02A8 2CB0 MOV R11,R0
02A9 2CA1 MOV R10,R1
02AA 9F28 MUL R18,R24
02AB 2C90 MOV R9,R0
02AC 2C81 MOV R8,R1
02AD 9F18 MUL R17,R24
02AE 0CA0 ADD R10,R0
02AF 1C91 ADC R9,R1
02B0 1C87 ADC R8,R7
02B1 9F09 MUL R16,R25
02B2 0CA0 ADD R10,R0
02B3 1C91 ADC R9,R1
02B4 1C87 ADC R8,R7
02B5 9F19 MUL R17,R25
02B6 0C90 ADD R9,R0
02B7 1C81 ADC R8,R1
02B8 9F0A MUL R16,R26
02B9 0C90 ADD R9,R0
02BA 1C81 ADC R8,R1
02BB 9F38 MUL R19,R24
02BC 0C80 ADD R8,R0
02BD 9F29 MUL R18,R25
02BE 0C80 ADD R8,R0
02BF 9F1A MUL R17,R26
02C0 0C80 ADD R8,R0
02C1 9F0B MUL R16,R27
02C2 0C80 ADD R8,R0
02C3 2D0B MOV R16,R11
02C4 2D1A MOV R17,R10
02C5 2D29 MOV R18,R9
02C6 2D38 MOV R19,R8
02C7 907F POP R7
02C8 940C02FD JMP long_epilog
pop_gset2:
02CA E0E2 LDI R30,2
02CB 940C02DC JMP pop
pop_gset4:
02CD E0E8 LDI R30,0x8
02CE 940C02DC JMP pop
push_gset5:
02D0 92FA ST R15,-Y
02D1 92EA ST R14,-Y
push_gset4:
02D2 92DA ST R13,-Y
02D3 92CA ST R12,-Y
push_gset3:
02D4 92BA ST R11,-Y
02D5 92AA ST R10,-Y
push_gset2:
02D6 937A ST R23,-Y
02D7 936A ST R22,-Y
push_gset1:
02D8 935A ST R21,-Y
02D9 934A ST R20,-Y
02DA 9508 RET
pop_gset1:
02DB E0E1 LDI R30,1
pop:
02DC 9149 LD R20,Y+
02DD 9159 LD R21,Y+
02DE FDE0 SBRC R30,0
02DF 9508 RET
02E0 9169 LD R22,Y+
02E1 9179 LD R23,Y+
02E2 FDE1 SBRC R30,1
02E3 9508 RET
02E4 90A9 LD R10,Y+
02E5 90B9 LD R11,Y+
02E6 FDE2 SBRC R30,2
02E7 9508 RET
02E8 90C9 LD R12,Y+
02E9 90D9 LD R13,Y+
02EA FDE3 SBRC R30,3
02EB 9508 RET
02EC 90E9 LD R14,Y+
02ED 90F9 LD R15,Y+
02EE 9508 RET
long_prolog:
02EF 928A ST R8,-Y
02F0 929A ST R9,-Y
02F1 92AA ST R10,-Y
02F2 92BA ST R11,-Y
02F3 93EA ST R30,-Y
02F4 938A ST R24,-Y
02F5 939A ST R25,-Y
02F6 93AA ST R26,-Y
02F7 93BA ST R27,-Y
02F8 8589 LDD R24,Y+9
02F9 859A LDD R25,Y+10
02FA 85AB LDD R26,Y+11
02FB 85BC LDD R27,Y+12
02FC 9508 RET
long_epilog:
02FD 91B9 LD R27,Y+
02FE 91A9 LD R26,Y+
02FF 9199 LD R25,Y+
0300 9189 LD R24,Y+
0301 91E9 LD R30,Y+
0302 90B9 LD R11,Y+
0303 90A9 LD R10,Y+
0304 9099 LD R9,Y+
0305 9089 LD R8,Y+
0306 9624 ADIW R28,4
0307 9508 RET
tstzero1:
0308 27EE CLR R30
0309 2BE0 OR R30,R16
030A 2BE1 OR R30,R17
030B 2BE2 OR R30,R18
030C 2BE3 OR R30,R19
030D 9508 RET
tstzero2:
030E 27EE CLR R30
030F 2BE8 OR R30,R24
0310 2BE9 OR R30,R25
0311 2BEA OR R30,R26
0312 2BEB OR R30,R27
0313 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -