📄 lcd.lst
字号:
078c 00000000 1167 .long 0x0
0790 00010002 1168 .long 0x10002
0794 41505f5f 1169 .long 0x41505f5f
0798 64694d52 1170 .long 0x64694d52
079c 00000000 1171 .long 0x0
07a0 00000000 1172 .long 0x0
07a4 00010002 1173 .long 0x10002
07a8 41505f5f 1174 .long 0x41505f5f
07ac 6e6f4d52 1175 .long 0x6e6f4d52
07b0 00000000 1176 .long 0x0
07b4 00000000 1177 .long 0x0
07b8 00010002 1178 .long 0x10002
07bc 00006e6f 1179 .long 0x6e6f
07c0 00000000 1180 .long 0x0
07c4 000d0102 1181 .long 0xd0102
07c8 00000004 1182 .long 0x4
07cc 0011ffff 1183 .long 0x11ffff
07d0 00006469 1184 .long 0x6469
07d4 00000000 1185 .long 0x0
07d8 000c0102 1186 .long 0xc0102
07dc 00000004 1187 .long 0x4
07e0 0011ffff 1188 .long 0x11ffff
07e4 0066652e 1189 .long 0x66652e
07e8 00000000 1190 .long 0x0
07ec 00000084 1191 .long DBG84
07f0 00000000 1192 .long 0x0
07f4 01650001 1193 .long 0x1650001
07f8 00000000 1194 .long 0x0
07fc 00000065 1195 .long 0x65
0800 00000000 1196 .long 0x0
0804 00000000 1197 .long 0x0
0808 00000000 1198 .long 0x0
1199 .pseg lcd_code
1200 DBG76:
1201 .dbgseg dbg_syms
080c 6944434c 1202 .long 0x6944434c
0810 006e6f63 1203 .long 0x6e6f63
0814 00000086 1204 .long DBG76
0818 00000000 1205 .long 0x0
081c 00ff0001 1206 .long 0xff0001
1207 ; }
1208 ; void LCDudec32(uint32 value, int16 pos, int16 digits, int16 after)
1209 DBG75:
0820 00000000 1210 .long 0x0
0824 0000035c 1211 .long DBG89
0828 00000086 1212 .long _LCDudec32
082c 00000040 1213 .long 0x40
0830 01020001 1214 .long 0x1020001
0834 00000848 1215 .long DBG79
0838 0000008c 1216 .long DBG86-DBG87
083c 00000120 1217 .long DBG88
0840 00000dac 1218 .long DBG85
0844 00000000 1219 .long 0x0
1220 .pseg lcd_code
1221 DBG87:
1222 .dbgseg dbg_syms
1223 DBG79:
0848 0066622e 1224 .long 0x66622e
084c 00000000 1225 .long 0x0
0850 00000086 1226 .long DBG87
0854 00000000 1227 .long 0x0
0858 01650001 1228 .long 0x1650001
085c 00000000 1229 .long 0x0
0860 0000006d 1230 .long 0x6d
0864 00000000 1231 .long 0x0
0868 00000dd4 1232 .long DBG90
086c 00000000 1233 .long 0x0
1234 .dbgseg dbg_line
1235 DBG88:
0120 00000820 1236 .long DBG75
0124 00000000 1237 .long 0x0
0128 00000086 1238 .long _LCDudec32
012c 00000001 1239 .long 0x1
0130 0000009e 1240 .long DBG92
0134 00000002 1241 .long 0x2
0138 0000009e 1242 .long DBG93
013c 00000008 1243 .long 0x8
0140 000000a0 1244 .long DBG94
0144 00000009 1245 .long 0x9
0148 000000aa 1246 .long DBG95
014c 0000000b 1247 .long 0xb
0150 000000b6 1248 .long DBG96
0154 0000000c 1249 .long 0xc
0158 000000ba 1250 .long DBG97
015c 0000000e 1251 .long 0xe
0160 000000c0 1252 .long DBG98
0164 0000000f 1253 .long 0xf
0168 000000c0 1254 .long DBG99
016c 00000010 1255 .long 0x10
0170 000000c8 1256 .long DBG100
0174 00000011 1257 .long 0x11
0178 000000cc 1258 .long DBG101
017c 00000012 1259 .long 0x12
0180 000000d6 1260 .long DBG102
0184 00000013 1261 .long 0x13
0188 000000e4 1262 .long DBG103
018c 00000014 1263 .long 0x14
0190 000000e6 1264 .long DBG104
0194 00000015 1265 .long 0x15
0198 000000fe 1266 .long DBG105
019c 00000016 1267 .long 0x16
01a0 00000104 1268 .long DBG106
01a4 00000018 1269 .long 0x18
1270 .pseg lcd_code
1271 .global _LCDudec32
1272 _LCDudec32:
0086 0412 1273 push r4
0088 0512 1274 push r5
008a 0612 1275 push r6
008c 0712 1276 push r7
008e 0812 1277 push r8
0090 0912 1278 push r9
1279 DBG91:
1280 ; ENTRY
0092 094d 1281 mov r13,r9
0094 084c 1282 mov r12,r8
1283 ; value at argloc 0 (0x0) in reg size 4
0096 054e 1284 mov r14,r5
1285 ; pos at argloc 0 (0x0) in reg size 2
0098 064f 1286 mov r15,r6
1287 ; digits at argloc 0 (0x0) in reg size 2
009a 17410e00 1288 mov 0xe(sp),r7
1289 DBG93:
1290 DBG92:
1291 ; after at argloc 2 (0x2) in reg size 2
1292 ; i in reg size 2
1293 ; flag in reg size 2
1294 ; digit in reg size 2
1295 ; {
1296 ; int16 i;
1297 ; int16 flag;
1298 ; uint16 digit;
1299 ; flag = 1;
009e 1443 1300 mov #0x1,r4
1301 DBG94:
1302 ; LCDchar( 0 , pos++);
00a0 0d45 1303 mov r5,r13
00a2 1553 1304 add #0x1,r5
00a4 4c43 1305 mov.b #0x0,r12
00a6 b0126200 1306 call #_LCDchar
1307 DBG95:
1308 ; bin2bcd32(bcd, value);
00aa 0e49 1309 mov r9,r14
00ac 0d48 1310 mov r8,r13
00ae 3c400000 1311 mov #_bcd,r12
00b2 b0120000 1312 call #_bin2bcd32
1313 DBG96:
1314 ; after = digits - after;
00b6 0846 1315 mov r6,r8
00b8 0887 1316 sub r7,r8
1317 DBG97:
1318 ; for (i=0; i<digits; i++)
00ba 0743 1319 mov #0x0,r7
00bc 0796 1320 cmp r6,r7
00be 2234 1321 jge LCDudec32_L1
1322 LCDudec32_L2:
1323 ; {
1324 DBG98:
1325 ; digit = bcd[(i >> 1)+2];
1326 DBG99:
00c0 0c47 1327 mov r7,r12
00c2 0c11 1328 rra r12
00c4 5c4c0200 1329 mov.b _bcd+0x2(r12),r12
1330 DBG100:
1331 ; if ((i & 1) == 0)
00c8 17b3 1332 bit #0x1,r7
00ca 0520 1333 jne LCDudec32_L3
1334 DBG101:
1335 ; digit >>= 4;
00cc 12c3 1336 clrc
00ce 0c10 1337 rrc r12
00d0 0c11 1338 rra r12
00d2 0c11 1339 rra r12
00d4 0c11 1340 rra r12
1341 DBG102:
1342 LCDudec32_L3:
1343 ; if ((digit & 0x0F) || i >= after - 1)
00d6 3cf00f00 1344 and #0xf,r12
00da 0420 1345 jne LCDudec32_L5
00dc 0d48 1346 mov r8,r13
00de 1d83 1347 sub #0x1,r13
00e0 079d 1348 cmp r13,r7
00e2 0138 1349 jl LCDudec32_L4
1350 LCDudec32_L5:
1351 ; flag = 0;
1352 DBG103:
00e4 0443 1353 mov #0x0,r4
1354 DBG104:
1355 LCDudec32_L4:
1356 ; LCDchar((flag == 0) ? lcd_digit_table[digit & 0x0F] : 0 , (pos++ +1));
00e6 0d45 1357 mov r5,r13
00e8 1553 1358 add #0x1,r5
00ea 1d53 1359 add #0x1,r13
00ec 0493 1360 cmp #0x0,r4
00ee 0320 1361 jne LCDudec32_LL2
00f0 5c4c0000 1362 mov.b _lcd_digit_table(r12),r12
00f4 013c 1363 jmp LCDudec32_LL3
1364 LCDudec32_LL2:
00f6 0c43 1365 mov #0x0,r12
1366 LCDudec32_LL3:
00f8 7cf3 1367 and.b #0xff,r12
00fa b0126200 1368 call #_LCDchar
1369 DBG105:
00fe 1753 1370 add #0x1,r7
0100 0796 1371 cmp r6,r7
0102 de3b 1372 jl LCDudec32_L2
1373 LCDudec32_L1:
1374 ; }
1375 DBG106:
1376 ; EXIT
1377 ; .temp1 at stkloc 0 (0x0) size 12
1378 DBG107:
0104 3941 1379 pop r9
0106 3841 1380 pop r8
0108 3741 1381 pop r7
010a 3641 1382 pop r6
010c 3541 1383 pop r5
010e 3441 1384 pop r4
0110 3041 1385 ret
1386 .dbgseg dbg_syms
0870 00000000 1387 .long 0x0
0874 000000d8 1388 .long DBG20
0878 0000000c 1389 .long 0xc
087c 00000000 1390 .long 0x0
0880 00010002 1391 .long 0x10002
0884 00000000 1392 .long 0x0
0888 00000314 1393 .long DBG21
088c 00000004 1394 .long 0x4
0890 00000000 1395 .long 0x0
0894 00010002 1396 .long 0x10002
0898 504e5f5f 1397 .long 0x504e5f5f
089c 534d5241 1398 .long 0x534d5241
08a0 00000004 1399 .long 0x4
08a4 00000000 1400 .long 0x0
08a8 00010002 1401 .long 0x10002
08ac 00000000 1402 .long 0x0
08b0 00000198 1403 .long DBG42
08b4 00000000 1404 .long 0x0
08b8 00000000 1405 .long 0x0
08bc 00010002 1406 .long 0x10002
08c0 00000000 1407 .long 0x0
08c4 00000048 1408 .long DBG60
08c8 00000000 1409 .long 0x0
08cc 00000000 1410 .long 0x0
08d0 00010002 1411 .long 0x10002
08d4 00000000 1412 .long 0x0
08d8 0000027c 1413 .long DBG108
08dc 00000000 1414 .long 0x0
08e0 00000000 1415 .long 0x0
08e4 00010002 1416 .long 0x10002
08e8 00000000 1417 .long 0x0
08ec 0000003c 1418 .long DBG109
08f0 00000000 1419 .long 0x0
08f4 00000000 1420 .long 0x0
08f8 00010002 1421 .long 0x10002
1422 DBG49:
08fc 0062622e 1423 .long 0x62622e
0900 00000000 1424 .long 0x0
0904 00000092 1425 .long DBG91
0908 00000000 1426 .long 0x0
090c 01640001 1427 .long 0x1640001
0910 00000000 1428 .long 0x0
0914 00000001 1429 .long 0x1
0918 00000000 1430 .long 0x0
091c 000009b0 1431 .long DBG110
0920 00000000 1432 .long 0x0
0924 756c6176 1433 .long 0x756c6176
0928 00000065 1434 .long 0x65
092c 00000200 1435 .long 0x200
0930 0000000f 1436 .long 0xf
0934 0211ffff 1437 .long 0x211ffff
0938 756c6176 1438 .long 0x756c6176
093c 00000065 1439 .long 0x65
0940 000c0102 1440 .long 0xc0102
0944 0000000f 1441 .long 0xf
0948 0111ffff 1442 .long 0x111ffff
094c 756c6176 1443 .long 0x756c6176
0950 00000065 1444 .long 0x65
0954 000d0102 1445 .long 0xd0102
0958 0000000f 1446 .long 0xf
095c 0011ffff 1447 .long 0x11ffff
0960 00736f70 1448 .long 0x736f70
0964 00000000 1449 .long 0x0
0968 000e0102 1450 .long 0xe0102
096c 00000004 1451 .long 0x4
0970 0011ffff 1452 .long 0x11ffff
0974 69676964 1453 .long 0x69676964
0978 00007374 1454 .long 0x7374
097c 000f010
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -