📄 gps-1280.lst
字号:
1B1 DF7A RCALL _dtoc
1B2 2EE0 MOV R14,R16
1B3 01CE MOVW R24,R28
1B4 01FB MOVW R30,R22
1B5 0FE8 ADD R30,R24
1B6 1FF9 ADC R31,R25
1B7 82E0 STD Z+0,R14
(0137) cBuf=(lBuf%1000)/100;
1B8 EE28 LDI R18,0xE8
1B9 E033 LDI R19,3
1BA 0186 MOVW R16,R12
1BB 940E 05BF CALL mod16u
1BD E624 LDI R18,0x64
1BE E030 LDI R19,0
1BF 940E 05C1 CALL div16u
(0138) debug_string[i++]=dtoc(cBuf);
1C1 01BA MOVW R22,R20
1C2 5F4F SUBI R20,0xFF
1C3 4F5F SBCI R21,0xFF
1C4 DF67 RCALL _dtoc
1C5 2EE0 MOV R14,R16
1C6 01CE MOVW R24,R28
1C7 01FB MOVW R30,R22
1C8 0FE8 ADD R30,R24
1C9 1FF9 ADC R31,R25
1CA 82E0 STD Z+0,R14
(0139) cBuf=(lBuf%100)/10;
1CB E624 LDI R18,0x64
1CC E030 LDI R19,0
1CD 0186 MOVW R16,R12
1CE 940E 05BF CALL mod16u
1D0 E02A LDI R18,0xA
1D1 E030 LDI R19,0
1D2 940E 05C1 CALL div16u
(0140) debug_string[i++]=dtoc(cBuf);
1D4 01BA MOVW R22,R20
1D5 5F4F SUBI R20,0xFF
1D6 4F5F SBCI R21,0xFF
1D7 DF54 RCALL _dtoc
1D8 2EE0 MOV R14,R16
1D9 01CE MOVW R24,R28
1DA 01FB MOVW R30,R22
1DB 0FE8 ADD R30,R24
1DC 1FF9 ADC R31,R25
1DD 82E0 STD Z+0,R14
(0141) cBuf=lBuf%10;
1DE E02A LDI R18,0xA
1DF E030 LDI R19,0
1E0 0186 MOVW R16,R12
1E1 940E 05BF CALL mod16u
(0142) debug_string[i++]=dtoc(cBuf);
1E3 01BA MOVW R22,R20
1E4 5F4F SUBI R20,0xFF
1E5 4F5F SBCI R21,0xFF
1E6 DF45 RCALL _dtoc
1E7 2EA0 MOV R10,R16
1E8 01CE MOVW R24,R28
1E9 01FB MOVW R30,R22
1EA 0FE8 ADD R30,R24
1EB 1FF9 ADC R31,R25
1EC 82A0 STD Z+0,R10
(0143)
(0144) debug_send_chars(debug_string,i);
1ED 019A MOVW R18,R20
1EE 018E MOVW R16,R28
1EF DEEA RCALL _debug_send_chars
(0145) debug_send_string("\n",1);
1F0 E021 LDI R18,1
1F1 E030 LDI R19,0
1F2 E000 LDI R16,0
1F3 E012 LDI R17,2
1F4 DEF9 RCALL _debug_send_string
1F5 962A ADIW R28,0xA
1F6 940C 0662 JMP pop_xgsetF0FC
_debug_num_ulong:
debug_string --> Y,+0
i --> R20
cBuf --> R10
lBuf --> Y,+18
1F8 940E 059C CALL push_arg4
1FA 940E 0690 CALL push_xgsetF03C
1FC 972A SBIW R28,0xA
(0146) #else
(0147) lBuf=0;
(0148) #endif
(0149) }
(0150) /*************************************************
(0151)
(0152) *************************************************/
(0153) void debug_num_ulong(unsigned long lBuf)
(0154) {
(0155) #ifdef DEBUG
(0156) unsigned char debug_string[10];
(0157) unsigned char cBuf;
(0158) unsigned int i=0;
1FD 2744 CLR R20
1FE 2755 CLR R21
(0159)
(0160) cBuf=(lBuf%1000000)/100000;
1FF E480 LDI R24,0x40
200 E492 LDI R25,0x42
201 E0AF LDI R26,0xF
202 E0B0 LDI R27,0
203 890A LDD R16,Y+18
204 891B LDD R17,Y+19
205 892C LDD R18,Y+20
206 893D LDD R19,Y+21
207 93BA ST R27,-Y
208 93AA ST R26,-Y
209 939A ST R25,-Y
20A 938A ST R24,-Y
20B 940E 05DD CALL mod32u
20D EA80 LDI R24,0xA0
20E E896 LDI R25,0x86
20F E0A1 LDI R26,1
210 E0B0 LDI R27,0
211 93BA ST R27,-Y
212 93AA ST R26,-Y
213 939A ST R25,-Y
214 938A ST R24,-Y
215 940E 05DB CALL div32u
(0161) debug_string[i++]=dtoc(cBuf);
217 011A MOVW R2,R20
218 5F4F SUBI R20,0xFF
219 4F5F SBCI R21,0xFF
21A 922F PUSH R2
21B 923F PUSH R3
21C DF0F RCALL _dtoc
21D 903F POP R3
21E 902F POP R2
21F 01CE MOVW R24,R28
220 01F1 MOVW R30,R2
221 0FE8 ADD R30,R24
222 1FF9 ADC R31,R25
223 8300 STD Z+0,R16
(0162) cBuf=(lBuf%100000)/10000;
224 EA80 LDI R24,0xA0
225 E896 LDI R25,0x86
226 E0A1 LDI R26,1
227 E0B0 LDI R27,0
228 890A LDD R16,Y+18
229 891B LDD R17,Y+19
22A 892C LDD R18,Y+20
22B 893D LDD R19,Y+21
22C 93BA ST R27,-Y
22D 93AA ST R26,-Y
22E 939A ST R25,-Y
22F 938A ST R24,-Y
230 940E 05DD CALL mod32u
232 E180 LDI R24,0x10
233 E297 LDI R25,0x27
234 E0A0 LDI R26,0
235 E0B0 LDI R27,0
236 93BA ST R27,-Y
237 93AA ST R26,-Y
238 939A ST R25,-Y
239 938A ST R24,-Y
23A 940E 05DB CALL div32u
(0163) debug_string[i++]=dtoc(cBuf);
23C 01BA MOVW R22,R20
23D 5F4F SUBI R20,0xFF
23E 4F5F SBCI R21,0xFF
23F DEEC RCALL _dtoc
240 2EC0 MOV R12,R16
241 01CE MOVW R24,R28
242 01FB MOVW R30,R22
243 0FE8 ADD R30,R24
244 1FF9 ADC R31,R25
245 82C0 STD Z+0,R12
(0164) cBuf=(lBuf%10000)/1000;
246 E180 LDI R24,0x10
247 E297 LDI R25,0x27
248 E0A0 LDI R26,0
249 E0B0 LDI R27,0
24A 890A LDD R16,Y+18
24B 891B LDD R17,Y+19
24C 892C LDD R18,Y+20
24D 893D LDD R19,Y+21
24E 93BA ST R27,-Y
24F 93AA ST R26,-Y
250 939A ST R25,-Y
251 938A ST R24,-Y
252 940E 05DD CALL mod32u
254 EE88 LDI R24,0xE8
255 E093 LDI R25,3
256 E0A0 LDI R26,0
257 E0B0 LDI R27,0
258 93BA ST R27,-Y
259 93AA ST R26,-Y
25A 939A ST R25,-Y
25B 938A ST R24,-Y
25C 940E 05DB CALL div32u
(0165) debug_string[i++]=dtoc(cBuf);
25E 01BA MOVW R22,R20
25F 5F4F SUBI R20,0xFF
260 4F5F SBCI R21,0xFF
261 DECA RCALL _dtoc
262 2EC0 MOV R12,R16
263 01CE MOVW R24,R28
264 01FB MOVW R30,R22
265 0FE8 ADD R30,R24
266 1FF9 ADC R31,R25
267 82C0 STD Z+0,R12
(0166) cBuf=(lBuf%1000)/100;
268 EE88 LDI R24,0xE8
269 E093 LDI R25,3
26A E0A0 LDI R26,0
26B E0B0 LDI R27,0
26C 890A LDD R16,Y+18
26D 891B LDD R17,Y+19
26E 892C LDD R18,Y+20
26F 893D LDD R19,Y+21
270 93BA ST R27,-Y
271 93AA ST R26,-Y
272 939A ST R25,-Y
273 938A ST R24,-Y
274 940E 05DD CALL mod32u
276 E684 LDI R24,0x64
277 E090 LDI R25,0
278 E0A0 LDI R26,0
279 E0B0 LDI R27,0
27A 93BA ST R27,-Y
27B 93AA ST R26,-Y
27C 939A ST R25,-Y
27D 938A ST R24,-Y
27E 940E 05DB CALL div32u
(0167) debug_string[i++]=dtoc(cBuf);
280 01BA MOVW R22,R20
281 5F4F SUBI R20,0xFF
282 4F5F SBCI R21,0xFF
283 DEA8 RCALL _dtoc
284 2EC0 MOV R12,R16
285 01CE MOVW R24,R28
286 01FB MOVW R30,R22
287 0FE8 ADD R30,R24
288 1FF9 ADC R31,R25
289 82C0 STD Z+0,R12
(0168) cBuf=(lBuf%100)/10;
28A E684 LDI R24,0x64
28B E090 LDI R25,0
28C E0A0 LDI R26,0
28D E0B0 LDI R27,0
28E 890A LDD R16,Y+18
28F 891B LDD R17,Y+19
290 892C LDD R18,Y+20
291 893D LDD R19,Y+21
292 93BA ST R27,-Y
293 93AA ST R26,-Y
294 939A ST R25,-Y
295 938A ST R24,-Y
296 940E 05DD CALL mod32u
298 E08A LDI R24,0xA
299 E090 LDI R25,0
29A E0A0 LDI R26,0
29B E0B0 LDI R27,0
29C 93BA ST R27,-Y
29D 93AA ST R26,-Y
29E 939A ST R25,-Y
29F 938A ST R24,-Y
2A0 940E 05DB CALL div32u
(0169) debug_string[i++]=dtoc(cBuf);
2A2 01BA MOVW R22,R20
2A3 5F4F SUBI R20,0xFF
2A4 4F5F SBCI R21,0xFF
2A5 DE86 RCALL _dtoc
2A6 2EC0 MOV R12,R16
2A7 01CE MOVW R24,R28
2A8 01FB MOVW R30,R22
2A9 0FE8 ADD R30,R24
2AA 1FF9 ADC R31,R25
2AB 82C0 STD Z+0,R12
(0170) cBuf=lBuf%10;
2AC E08A LDI R24,0xA
2AD E090 LDI R25,0
2AE E0A0 LDI R26,0
2AF E0B0 LDI R27,0
2B0 890A LDD R16,Y+18
2B1 891B LDD R17,Y+19
2B2 892C LDD R18,Y+20
2B3 893D LDD R19,Y+21
2B4 93BA ST R27,-Y
2B5 93AA ST R26,-Y
2B6 939A ST R25,-Y
2B7 938A ST R24,-Y
2B8 940E 05DD CALL mod32u
(0171) debug_string[i++]=dtoc(cBuf);
2BA 01BA MOVW R22,R20
2BB 5F4F SUBI R20,0xFF
2BC 4F5F SBCI R21,0xFF
2BD DE6E RCALL _dtoc
2BE 2EA0 MOV R10,R16
2BF 01CE MOVW R24,R28
2C0 01FB MOVW R30,R22
2C1 0FE8 ADD R30,R24
2C2 1FF9 ADC R31,R25
2C3 82A0 STD Z+0,R10
(0172)
(0173) debug_send_chars(debug_string,i);
2C4 019A MOVW R18,R20
2C5 018E MOVW R16,R28
2C6 DE13 RCALL _debug_send_chars
(0174) debug_send_string("\n",1);
2C7 E021 LDI R18,1
2C8 E030 LDI R19,0
2C9 E000 LDI R16,0
2CA E012 LDI R17,2
2CB DE22 RCALL _debug_send_string
2CC 962A ADIW R28,0xA
2CD 940E 0699 CALL pop_xgsetF03C
2CF 9624 ADIW R28,4
2D0 9508 RET
_debug_uchar_original_shape:
accii_L --> R10
accii_H --> R12
ucData --> R10
2D1 92AA ST R10,-Y
2D2 92CA ST R12,-Y
2D3 2EA0 MOV R10,R16
(0175) #else
(0176) lBuf=0;
(0177) #endif
(0178) }
(0179) /*************************************************
(0180)
(0181) *************************************************/
(0182) void debug_uchar_original_shape(unsigned char ucData)
(0183) {
(0184) unsigned char accii_H=char_buf[ucData/16];
2D4 E120 LDI R18,0x10
2D5 E030 LDI R19,0
2D6 2D0A MOV R16,R10
2D7 2711 CLR R17
2D8 940E 05A5 CALL div16s
2DA 01F8 MOVW R30,R16
2DB EE84 LDI R24,0xE4
2DC E090 LDI R25,0
2DD 0FE8 ADD R30,R24
2DE 1FF9 ADC R31,R25
2DF 90C6 ELPM R12,0(Z)
(0185) unsigned char accii_L=char_buf[ucData-(ucData/16)*16];
2E0 2D8A MOV R24,R10
2E1 9582 SWAP R24
2E2 708F ANDI R24,0xF
2E3 E190 LDI R25,0x10
2E4 9F98 MUL R25,R24
2E5 2DEA MOV R30,R10
2E6 27FF CLR R31
2E7 19E0 SUB R30,R0
2E8 09F1 SBC R31,R1
2E9 EE84 LDI R24,0xE4
2EA E090 LDI R25,0
2EB 0FE8 ADD R30,R24
2EC 1FF9 ADC R31,R25
2ED 90A6 ELPM R10,0(Z)
(0186) //debug_send_char('0');
(0187) //debug_send_char('x');
(0188) debug_send_char(accii_H);
2EE 2D0C MOV R16,R12
2EF DDE3 RCALL _debug_send_char
(0189) debug_send_char(accii_L);
2F0 2D0A MOV R16,R10
2F1 DDE1 RCALL _debug_send_char
(0190) debug_send_char(' ');
2F2 E200 LDI R16,0x20
2F3 DDDF RCALL _debug_send_char
2F4 90C9 LD R12,Y+
2F5 90A9 LD R10,Y+
2F6 9508 RET
_debug_uchars_original_shape:
i --> R20
len --> R10
ucData --> R12
2F7 940E 0682 CALL push_xgset303C
2F9 0159 MOVW R10,R18
2FA 0168 MOVW R12,R16
(0191) }
(0192) /*************************************************
(0193)
(0194) *************************************************/
(0195) void debug_uchars_original_shape(unsigned char *ucData,unsigned int len)
(0196) {
(0197) unsigned int i;
(0198)
(0199) for(i=0;i<len;i++)
2FB 2744 CLR R20
2FC 2755 CLR R21
2FD C007 RJMP 0x0305
(0200) {
(0201) debug_uchar_original_shape(ucData[i]);
2FE 01FA MOVW R30,R20
2FF 0DEC ADD R30,R12
300 1DFD ADC R31,R13
301 8100 LDD R16,Z+0
302 DFCE RCALL _debug_uchar_original_shape
303 5F4F SUBI R20,0xFF
304 4F5F SBCI R21,0xFF
305 154A CP R20,R10
306 055B CPC R21,R11
307 F3B0 BCS 0x02FE
(0202) }
(0203) debug_send_string("\n",1);
308 E021 LDI R18,1
309 E030 LDI R19,0
30A E000 LDI R16,0
30B E012 LDI R17,2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -