⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac10-2.lst

📁 AVR学习资料
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0098) {
(0099) long x; 	
(0100) uint y; 
(0101) x=(5000*(long)i)/1023; 
    015B 0115      MOVW	R2,R10
    015C 2444      CLR	R4
    015D 2455      CLR	R5
    015E E848      LDI	R20,0x88
    015F E153      LDI	R21,0x13
    0160 E060      LDI	R22,0
    0161 E070      LDI	R23,0
    0162 925A      ST	R5,-Y
    0163 924A      ST	R4,-Y
    0164 923A      ST	R3,-Y
    0165 922A      ST	R2,-Y
    0166 018A      MOVW	R16,R20
    0167 019B      MOVW	R18,R22
    0168 940E023D  CALL	empy32s
    016A EF4F      LDI	R20,0xFF
    016B E053      LDI	R21,3
    016C E060      LDI	R22,0
    016D E070      LDI	R23,0
    016E 937A      ST	R23,-Y
    016F 936A      ST	R22,-Y
    0170 935A      ST	R21,-Y
    0171 934A      ST	R20,-Y
    0172 940E01D2  CALL	div32s
    0174 01FE      MOVW	R30,R28
    0175 8300      STD	Z+0,R16
    0176 8311      STD	Z+1,R17
    0177 8322      STD	Z+2,R18
    0178 8333      STD	Z+3,R19
(0102) y=(uint)x; 	
    0179 01FE      MOVW	R30,R28
    017A 80A0      LDD	R10,Z+0
    017B 80B1      LDD	R11,Z+1
(0103) return y; 	
    017C 0185      MOVW	R16,R10
    017D 9624      ADIW	R28,4
    017E 940E0270  CALL	pop_gset3
    0180 9508      RET
(0104) } 
(0105) /******************************************/
(0106) void main(void) 	
(0107) {	 				
(0108) init_devices();		
_main:
    0181 DFB6      RCALL	_init_devices
    0182 C02B      RJMP	0x01AE
(0109)   while(1) 	
(0110)   {
(0111)    		if(flag==1) 
    0183 91800060  LDS	R24,flag
    0185 3081      CPI	R24,1
    0186 F521      BNE	0x01AB
(0112) 		{
(0113) 		dis_val=conv(value); 
    0187 91000064  LDS	R16,value
    0189 91100065  LDS	R17,value+1
    018B DFCB      RCALL	_conv
    018C 93100063  STS	dis_val+1,R17
    018E 93000062  STS	dis_val,R16
(0114) 		  if(dis_val<2000){OUT2_1;OUT1_0;} 
    0190 3D00      CPI	R16,0xD0
    0191 E0E7      LDI	R30,7
    0192 071E      CPC	R17,R30
    0193 F428      BCC	0x0199
    0194 9AC1      SBI	0x18,1
    0195 B388      IN	R24,0x18
    0196 7F8E      ANDI	R24,0xFE
    0197 BB88      OUT	0x18,R24
    0198 C00F      RJMP	0x01A8
(0115) 		  else if(dis_val<3000){OUT1_1;OUT2_1;} 
    0199 91800062  LDS	R24,dis_val
    019B 91900063  LDS	R25,dis_val+1
    019D 3B88      CPI	R24,0xB8
    019E E0EB      LDI	R30,0xB
    019F 079E      CPC	R25,R30
    01A0 F418      BCC	0x01A4
    01A1 9AC0      SBI	0x18,0
    01A2 9AC1      SBI	0x18,1
    01A3 C004      RJMP	0x01A8
(0116) 		  else {OUT2_0;OUT1_1;} 
    01A4 B388      IN	R24,0x18
    01A5 7F8D      ANDI	R24,0xFD
    01A6 BB88      OUT	0x18,R24
    01A7 9AC0      SBI	0x18,0
(0117) 		flag=0;			
    01A8 2422      CLR	R2
    01A9 92200060  STS	flag,R2
(0118) 		}
(0119) 		delay(10);		
FILE: <library>
    01AB E00A      LDI	R16,0xA
    01AC E010      LDI	R17,0
    01AD DF93      RCALL	_delay
    01AE CFD4      RJMP	0x0183
    01AF 9508      RET
mod16u:
    01B0 9468      BSET	6
    01B1 C001      RJMP	xdiv16u
div16u:
    01B2 94E8      BCLR	6
xdiv16u:
    01B3 92EA      ST	R14,-Y
    01B4 92FA      ST	R15,-Y
    01B5 938A      ST	R24,-Y
    01B6 24EE      CLR	R14
    01B7 24FF      CLR	R15
    01B8 E180      LDI	R24,0x10
    01B9 0F00      LSL	R16
    01BA 1F11      ROL	R17
    01BB 1CEE      ROL	R14
    01BC 1CFF      ROL	R15
    01BD 16E2      CP	R14,R18
    01BE 06F3      CPC	R15,R19
    01BF F018      BCS	0x01C3
    01C0 1AE2      SUB	R14,R18
    01C1 0AF3      SBC	R15,R19
    01C2 9503      INC	R16
    01C3 958A      DEC	R24
    01C4 F7A1      BNE	0x01B9
    01C5 F416      BRTC	0x01C8
    01C6 2D0E      MOV	R16,R14
    01C7 2D1F      MOV	R17,R15
    01C8 9189      LD	R24,Y+
    01C9 90F9      LD	R15,Y+
    01CA 90E9      LD	R14,Y+
    01CB 9508      RET
div32u:
    01CC 94E8      BCLR	6
    01CD C001      RJMP	0x01CF
mod32u:
    01CE 9468      BSET	6
    01CF D02F      RCALL	long_div_prolog
    01D0 24CC      CLR	R12
    01D1 C008      RJMP	0x01DA
div32s:
    01D2 94E8      BCLR	6
    01D3 C001      RJMP	0x01D5
mod32s:
    01D4 9468      BSET	6
    01D5 D029      RCALL	long_div_prolog
    01D6 FD37      SBRC	R19,7
    01D7 D053      RCALL	neg_R16_R19
    01D8 FDB7      SBRC	R27,7
    01D9 D05A      RCALL	neg_R24_R27
    01DA 2477      CLR	R7
    01DB 2488      CLR	R8
    01DC 2499      CLR	R9
    01DD 24AA      CLR	R10
    01DE 24BB      CLR	R11
    01DF D041      RCALL	tst_R16_R19
    01E0 F0C1      BEQ	0x01F9
    01E1 D044      RCALL	tst_R24_R27
    01E2 F0B1      BEQ	0x01F9
    01E3 E2E8      LDI	R30,0x28
    01E4 0F00      LSL	R16
    01E5 1F11      ROL	R17
    01E6 1F22      ROL	R18
    01E7 1F33      ROL	R19
    01E8 1C77      ROL	R7
    01E9 1C88      ROL	R8
    01EA 1C99      ROL	R9
    01EB 1CAA      ROL	R10
    01EC 1CBB      ROL	R11
    01ED 1688      CP	R8,R24
    01EE 0699      CPC	R9,R25
    01EF 06AA      CPC	R10,R26
    01F0 06BB      CPC	R11,R27
    01F1 F028      BCS	0x01F7
    01F2 1A88      SUB	R8,R24
    01F3 0A99      SBC	R9,R25
    01F4 0AAA      SBC	R10,R26
    01F5 0ABB      SBC	R11,R27
    01F6 9503      INC	R16
    01F7 95EA      DEC	R30
    01F8 F759      BNE	0x01E4
    01F9 F426      BRTC	0x01FE
    01FA 2D08      MOV	R16,R8
    01FB 2D19      MOV	R17,R9
    01FC 2D2A      MOV	R18,R10
    01FD 2D3B      MOV	R19,R11
    01FE C013      RJMP	long_div_epilog
long_div_prolog:
    01FF 927A      ST	R7,-Y
    0200 928A      ST	R8,-Y
    0201 929A      ST	R9,-Y
    0202 92AA      ST	R10,-Y
    0203 92BA      ST	R11,-Y
    0204 92CA      ST	R12,-Y
    0205 93EA      ST	R30,-Y
    0206 938A      ST	R24,-Y
    0207 939A      ST	R25,-Y
    0208 93AA      ST	R26,-Y
    0209 93BA      ST	R27,-Y
    020A 858B      LDD	R24,Y+11
    020B 859C      LDD	R25,Y+12
    020C 85AD      LDD	R26,Y+13
    020D 85BE      LDD	R27,Y+14
    020E 2EC3      MOV	R12,R19
    020F F00E      BRTS	0x0211
    0210 26CB      EOR	R12,R27
    0211 9508      RET
long_div_epilog:
    0212 FCC7      SBRC	R12,7
    0213 D017      RCALL	neg_R16_R19
    0214 91B9      LD	R27,Y+
    0215 91A9      LD	R26,Y+
    0216 9199      LD	R25,Y+
    0217 9189      LD	R24,Y+
    0218 91E9      LD	R30,Y+
    0219 90C9      LD	R12,Y+
    021A 90B9      LD	R11,Y+
    021B 90A9      LD	R10,Y+
    021C 9099      LD	R9,Y+
    021D 9089      LD	R8,Y+
    021E 9079      LD	R7,Y+
    021F 9624      ADIW	R28,4
    0220 9508      RET
tst_R16_R19:
    0221 2FE0      MOV	R30,R16
    0222 2BE1      OR	R30,R17
    0223 2BE2      OR	R30,R18
    0224 2BE3      OR	R30,R19
    0225 9508      RET
tst_R24_R27:
    0226 2FE8      MOV	R30,R24
    0227 2BE9      OR	R30,R25
    0228 2BEA      OR	R30,R26
    0229 2BEB      OR	R30,R27
    022A 9508      RET
neg_R16_R19:
    022B 9500      COM	R16
    022C 9510      COM	R17
    022D 9520      COM	R18
    022E 9530      COM	R19
    022F 5F0F      SUBI	R16,0xFF
    0230 4F1F      SBCI	R17,0xFF
    0231 4F2F      SBCI	R18,0xFF
    0232 4F3F      SBCI	R19,0xFF
    0233 9508      RET
neg_R24_R27:
    0234 9580      COM	R24
    0235 9590      COM	R25
    0236 95A0      COM	R26
    0237 95B0      COM	R27
    0238 5F8F      SUBI	R24,0xFF
    0239 4F9F      SBCI	R25,0xFF
    023A 4FAF      SBCI	R26,0xFF
    023B 4FBF      SBCI	R27,0xFF
    023C 9508      RET
empy32s:
empy32u:
    023D 940E0292  CALL	long_prolog
    023F 927F      PUSH	R7
    0240 940E02AB  CALL	tstzero1
    0242 F139      BEQ	0x026A
    0243 2477      CLR	R7
    0244 940E02B1  CALL	tstzero2
    0246 F419      BNE	0x024A
    0247 018C      MOVW	R16,R24
    0248 019D      MOVW	R18,R26
    0249 C020      RJMP	0x026A
    024A 9F08      MUL	R16,R24
    024B 2CB0      MOV	R11,R0
    024C 2CA1      MOV	R10,R1
    024D 9F28      MUL	R18,R24
    024E 2C90      MOV	R9,R0
    024F 2C81      MOV	R8,R1
    0250 9F18      MUL	R17,R24
    0251 0CA0      ADD	R10,R0
    0252 1C91      ADC	R9,R1
    0253 1C87      ADC	R8,R7
    0254 9F09      MUL	R16,R25
    0255 0CA0      ADD	R10,R0
    0256 1C91      ADC	R9,R1
    0257 1C87      ADC	R8,R7
    0258 9F19      MUL	R17,R25
    0259 0C90      ADD	R9,R0
    025A 1C81      ADC	R8,R1
    025B 9F0A      MUL	R16,R26
    025C 0C90      ADD	R9,R0
    025D 1C81      ADC	R8,R1
    025E 9F38      MUL	R19,R24
    025F 0C80      ADD	R8,R0
    0260 9F29      MUL	R18,R25
    0261 0C80      ADD	R8,R0
    0262 9F1A      MUL	R17,R26
    0263 0C80      ADD	R8,R0
    0264 9F0B      MUL	R16,R27
    0265 0C80      ADD	R8,R0
    0266 2D0B      MOV	R16,R11
    0267 2D1A      MOV	R17,R10
    0268 2D29      MOV	R18,R9
    0269 2D38      MOV	R19,R8
    026A 907F      POP	R7
    026B 940C02A0  JMP	long_epilog
pop_gset2:
    026D E0E2      LDI	R30,2
    026E 940C027F  JMP	pop
pop_gset3:
    0270 E0E4      LDI	R30,4
    0271 940C027F  JMP	pop
push_gset5:
    0273 92FA      ST	R15,-Y
    0274 92EA      ST	R14,-Y
push_gset4:
    0275 92DA      ST	R13,-Y
    0276 92CA      ST	R12,-Y
push_gset3:
    0277 92BA      ST	R11,-Y
    0278 92AA      ST	R10,-Y
push_gset2:
    0279 937A      ST	R23,-Y
    027A 936A      ST	R22,-Y
push_gset1:
    027B 935A      ST	R21,-Y
    027C 934A      ST	R20,-Y
    027D 9508      RET
pop_gset1:
    027E E0E1      LDI	R30,1
pop:
    027F 9149      LD	R20,Y+
    0280 9159      LD	R21,Y+
    0281 FDE0      SBRC	R30,0
    0282 9508      RET
    0283 9169      LD	R22,Y+
    0284 9179      LD	R23,Y+
    0285 FDE1      SBRC	R30,1
    0286 9508      RET
    0287 90A9      LD	R10,Y+
    0288 90B9      LD	R11,Y+
    0289 FDE2      SBRC	R30,2
    028A 9508      RET
    028B 90C9      LD	R12,Y+
    028C 90D9      LD	R13,Y+
    028D FDE3      SBRC	R30,3
    028E 9508      RET
    028F 90E9      LD	R14,Y+
    0290 90F9      LD	R15,Y+
    0291 9508      RET
long_prolog:
    0292 928A      ST	R8,-Y
    0293 929A      ST	R9,-Y
    0294 92AA      ST	R10,-Y
    0295 92BA      ST	R11,-Y
    0296 93EA      ST	R30,-Y
    0297 938A      ST	R24,-Y
    0298 939A      ST	R25,-Y
    0299 93AA      ST	R26,-Y
    029A 93BA      ST	R27,-Y
    029B 8589      LDD	R24,Y+9
    029C 859A      LDD	R25,Y+10
    029D 85AB      LDD	R26,Y+11
    029E 85BC      LDD	R27,Y+12
    029F 9508      RET
long_epilog:
    02A0 91B9      LD	R27,Y+
    02A1 91A9      LD	R26,Y+
    02A2 9199      LD	R25,Y+
    02A3 9189      LD	R24,Y+
    02A4 91E9      LD	R30,Y+
    02A5 90B9      LD	R11,Y+
    02A6 90A9      LD	R10,Y+
    02A7 9099      LD	R9,Y+
    02A8 9089      LD	R8,Y+
    02A9 9624      ADIW	R28,4
    02AA 9508      RET
tstzero1:
    02AB 27EE      CLR	R30
    02AC 2BE0      OR	R30,R16
    02AD 2BE1      OR	R30,R17
    02AE 2BE2      OR	R30,R18
    02AF 2BE3      OR	R30,R19
    02B0 9508      RET
tstzero2:
    02B1 27EE      CLR	R30
    02B2 2BE8      OR	R30,R24
    02B3 2BE9      OR	R30,R25
    02B4 2BEA      OR	R30,R26
    02B5 2BEB      OR	R30,R27
    02B6 9508      RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -