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

📄 postfix.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0A0B               1296 .MemToMem:
+                  1297 
0A0B F5 00         1298 		lda0	.DataBuf
0A0D F9 00         1299 		sta0	.Buf1
0A0F 20 0F BF      1300 		call	.ClosEndPS
0A12 20 0E 8B      1301 		call	.StoFuncPS
0A15 F3 A6         1302 		lda	#.MUL
0A17 F9 00         1303 		sta0	.DataBuf
0A19 20 0F BF      1304 		call	.ClosEndPS
0A1C 20 0E 8B      1305 		call	.StoFuncPS
0A1F 02 00 0A      1306 		br	.IN2PS
+                  1307 ;-------------------------------------------
0A22               1308 .Sign:
0A22 F5 00         1309 		lda0	.DataBuf
0A24 A7 A4         1310 		cmpe	#.ADD
0A26 06 0A 2E      1311 		brz	.IsADD
0A29 F5 00         1312 		lda0	.DecFlag
0A2B 1F            1313 		inca
0A2C F9 00         1314 		sta0	.DecFlag
0A2E               1315 .IsADD:
0A2E F5 00         1316 		lda0	.DataBuf
0A30 F9 00         1317 		sta0	.Buf1
0A32 02 00 0A      1318 		br	.IN2PS
+                  1319 ;-------------------------------------------
0A35               1320 .PushTOStack:
0A35 F5 00         1321 		lda0	.DecFlag
0A37 CB 01         1322 		anda	#01h
0A39 06 0A 56      1323 		brz	.1$
0A3C F3 03         1324 		lda	#.STPP
0A3E FC 28         1325 		sta	PP
0A40 F5 00         1326 		lda0	.STDP
0A42 FC 21         1327 		sta	DP
0A44 F2            1328 		lda	i
0A45 A7 00         1329 		cmpe	#0h
0A47 06 0A 4F      1330 		brz	.NoAdddp
0A4A 18            1331 		incdp
0A4B F0 21         1332 		lda	DP
0A4D F9 00         1333 		sta0	.STDP
0A4F               1334 .NoAdddp:		
0A4F F3 A8         1335 		lda	#.Negative
0A51 FE            1336 		sta	i		
0A52 F3 00         1337 		lda	#0h
0A54 F9 00         1338 		sta0	.DecFlag
0A56               1339 .1$:			
0A56 20 0D 6B      1340 		call	.StoStack
0A59 F5 00         1341 		lda0	.AfterPari
0A5B F9 00         1342 		sta0	.BeforePari
0A5D F5 00         1343 		lda0	.DataBuf
0A5F F9 00         1344 		sta0	.Buf1
0A61 02 00 0A      1345 		br	.IN2PS
+                  1346 ;===========================================
0A64               1347 .CheckPari::
0A64 F5 01         1348 		lda0	.DataBuf+1
0A66 A7 A0         1349 		cmpe	#.Point
0A68 07 0A 72      1350 		brnz	.CheckNum
0A6B F3 02         1351 		lda	#02h
0A6D F9 00         1352 		sta0	.AfterPari
0A6F 02 0C 1C      1353 		br	.EndCheckPari
0A72               1354 .CheckNum:		
0A72 A7 10         1355 		cmpe	#10h
0A74 04 0A 7E      1356 		brc	.CKAdd
0A77 F3 02         1357 		lda	#02h
0A79 F9 00         1358 		sta0	.AfterPari
0A7B 02 0C 1C      1359 		br	.EndCheckPari
0A7E               1360 .CKAdd:
0A7E A7 A4         1361 		cmpe	#.ADD
0A80 07 0A 8A      1362 		brnz	.CKDec
0A83 F3 03         1363 		lda	#03h
0A85 F9 00         1364 		sta0	.AfterPari
0A87 02 0C 1C      1365 		br	.EndCheckPari
0A8A               1366 .CKDec:
0A8A F5 01         1367 		lda0	.DataBuf+1
0A8C A7 A5         1368 		cmpe	#.DEC
0A8E 07 0A 98      1369 		brnz	.CKMul
0A91 F3 03         1370 		lda	#03h
0A93 F9 00         1371 		sta0	.AfterPari
0A95 02 0C 1C      1372 		br	.EndCheckPari
0A98               1373 .CKMul:
0A98 F5 01         1374 		lda0	.DataBuf+1
0A9A A7 A6         1375 		cmpe	#.MUL
0A9C 07 0A A6      1376 		brnz	.CKDiv
0A9F F3 04         1377 		lda	#04h
0AA1 F9 00         1378 		sta0	.AfterPari
0AA3 02 0C 1C      1379 		br	.EndCheckPari
0AA6               1380 .CKDiv:
0AA6 F5 01         1381 		lda0	.DataBuf+1
0AA8 A7 A7         1382 		cmpe	#.DIV
0AAA 07 0A B4      1383 		brnz	.SPadd
0AAD F3 04         1384 		lda	#04h
0AAF F9 00         1385 		sta0	.AfterPari
0AB1 02 0C 1C      1386 		br	.EndCheckPari
0AB4               1387 .SPadd:
0AB4 F5 01         1388 		lda0	.DataBuf+1
0AB6 A7 DF         1389 		cmpe	#0dfh		
0AB8 07 0A C2      1390 		brnz	.CKLC
0ABB F3 07         1391 		lda	#07h		;06
0ABD F9 00         1392 		sta0	.AfterPari
0ABF 02 0C 1C      1393 		br	.EndCheckPari		
0AC2               1394 .CKLC:
0AC2 F5 01         1395 		lda0	.DataBuf+1
0AC4 A7 B2         1396 		cmpe	#.LC
0AC6 07 0A D0      1397 		brnz	.CKRC
0AC9 F3 00         1398 		lda	#0h
0ACB F9 00         1399 		sta0	.AfterPari
0ACD 02 0C 1C      1400 		br	.EndCheckPari
0AD0               1401 .CKRC:
0AD0 F5 01         1402 		lda0	.DataBuf+1
0AD2 A7 B3         1403 		cmpe	#.RC
0AD4 07 0A DE      1404 		brnz	.CKFun5
0AD7 F3 00         1405 		lda	#0h
0AD9 F9 00         1406 		sta0	.AfterPari
0ADB 02 0C 1C      1407 		br	.EndCheckPari
0ADE               1408 .CKFun5:
0ADE F5 01         1409 		lda0	.DataBuf+1
0AE0 A7 D5         1410 		cmpe	#.NPR
0AE2 07 0A EC      1411 		brnz	.CKFun6
0AE5 F3 05         1412 		lda	#05h		;9h
0AE7 F9 00         1413 		sta0	.AfterPari
0AE9 02 0C 1C      1414 		br	.EndCheckPari
0AEC               1415 .CKFun6:
0AEC F5 01         1416 		lda0	.DataBuf+1
0AEE A7 C9         1417 		cmpe	#.NCR
0AF0 07 0A FA      1418 		brnz	.CKFun1
0AF3 F3 05         1419 		lda	#05h		;9h
0AF5 F9 00         1420 		sta0	.AfterPari
0AF7 02 0C 1C      1421 		br	.EndCheckPari
0AFA               1422 .CKFun1:
0AFA F5 01         1423 		lda0	.DataBuf+1
0AFC A7 D3         1424 		cmpe	#.XY
0AFE 07 0B 08      1425 		brnz	.CKFun2
0B01 F3 09         1426 		lda	#09h
0B03 F9 00         1427 		sta0	.AfterPari
0B05 02 0C 1C      1428 		br	.EndCheckPari
0B08               1429 .CKFun2:
0B08 F5 01         1430 		lda0	.DataBuf+1
0B0A A7 D7         1431 		cmpe	#.SQUX
0B0C 07 0B 16      1432 		brnz	.CKFun3
0B0F F3 09         1433 		lda	#09h
0B11 F9 00         1434 		sta0	.AfterPari
0B13 02 0C 1C      1435 		br	.EndCheckPari
0B16               1436 .CKFun3:
0B16 F5 01         1437 		lda0	.DataBuf+1
0B18 A7 D0         1438 		cmpe	#.POL
0B1A 07 0B 24      1439 		brnz	.CKFun4
0B1D F3 0C         1440 		lda	#0ch
0B1F F9 00         1441 		sta0	.AfterPari
0B21 02 0C 1C      1442 		br	.EndCheckPari
0B24               1443 .CKFun4:
0B24 F5 01         1444 		lda0	.DataBuf+1
0B26 A7 D6         1445 		cmpe	#.REC
0B28 07 0B 32      1446 		brnz	.CKFun7
0B2B F3 0C         1447 		lda	#0ch
0B2D F9 00         1448 		sta0	.AfterPari
0B2F 02 0C 1C      1449 		br	.EndCheckPari
0B32               1450 .CKFun7:
0B32 F5 01         1451 		lda0	.DataBuf+1
0B34 A7 B1         1452 		cmpe	#.REG
0B36 07 0B 40      1453 		brnz	.LCmul
0B39 F3 00         1454 		lda	#0h
0B3B F9 00         1455 		sta0	.AfterPari
0B3D 02 0C 1C      1456 		br	.EndCheckPari
0B40               1457 .LCmul:		
0B40 F5 01         1458 		lda0	.DataBuf+1
0B42 A7 EC         1459 		cmpe	#0ech
0B44 07 0B 4E      1460 		brnz	.MemMul
0B47 F3 05         1461 		lda	#05h
0B49 F9 00         1462 		sta0	.AfterPari
0B4B 02 0C 1C      1463 		br	.EndCheckPari
+                  1464 		
+                  1465 						
0B4E               1466 .MemMul:
0B4E F5 01         1467 		lda0	.DataBuf+1
0B50 A7 CD         1468 		cmpe	#0cdh		;mem *
0B52 07 0B 5C      1469 		brnz	.MemDiv
0B55 F3 07         1470 		lda	#07h		;06h
0B57 F9 00         1471 		sta0	.AfterPari
0B59 02 0C 1C      1472 		br	.EndCheckPari
0B5C               1473 .MemDiv:
0B5C F5 01         1474 		lda0	.DataBuf+1
0B5E A7 DE         1475 		cmpe	#0deh		;mem /
0B60 07 0B 6A      1476 		brnz	.DmsAdd
0B63 F3 08         1477 		lda	#08h		;7 
0B65 F9 00         1478 		sta0	.AfterPari
0B67 02 0C 1C      1479 		br	.EndCheckPari		
+                  1480 		
0B6A               1481 .DmsAdd:
0B6A F5 01         1482 		lda0	.DataBuf+1
0B6C A7 AE         1483 		cmpe	#0aeh		;dms +
0B6E 07 0B 78      1484 		brnz	.D_M_S
0B71 F3 09         1485 		lda	#09h		;06h
0B73 F9 00         1486 		sta0	.AfterPari
0B75 02 0C 1C      1487 		br	.EndCheckPari		
0B78               1488 .D_M_S:		
0B78 F5 01         1489 		lda0	.DataBuf+1
0B7A A7 B7         1490 		cmpe	#.DMS
0B7C 07 0B 86      1491 		brnz	.Degrees		;dms degree
0B7F F3 0A         1492 		lda	#0ah
0B81 F9 00         1493 		sta0	.AfterPari
0B83 02 0C 1C      1494 		br	.EndCheckPari
0B86               1495 .Degrees:		
0B86 F5 01         1496 		lda0	.DataBuf+1
0B88 A7 AA         1497 		cmpe	#0aah
0B8A 07 0B 94      1498 		brnz	.Degrees1
0B8D F3 0A         1499 		lda	#0ah
0B8F F9 00         1500 		sta0	.AfterPari
0B91 02 0C 1C      1501 		br	.EndCheckPari		
0B94               1502 .Degrees1:		
0B94 F5 01         1503 		lda0	.DataBuf+1
0B96 A7 AB         1504 		cmpe	#.Degree
0B98 07 0B A2      1505 		brnz	.Mins
0B9B F3 0A         1506 		lda	#0ah
0B9D F9 00         1507 		sta0	.AfterPari
0B9F 02 0C 1C      1508 		br	.EndCheckPari
0BA2               1509 .Mins:		
0BA2 F5 01         1510 		lda0	.DataBuf+1
0BA4 A7 AC         1511 		cmpe	#.Minute
0BA6 07 0B B0      1512 		brnz	.Secs
0BA9 F3 0A         1513 		lda	#0ah
0BAB F9 00         1514 		sta0	.AfterPari
0BAD 02 0C 1C      1515 		br	.EndCheckPari
0BB0               1516 .Secs:		
0BB0 F5 01         1517 		lda0	.DataBuf+1
0BB2 A7 AD         1518 		cmpe	#.Second
0BB4 07 0B BE      1519 		brnz	.EXP
0BB7 F3 0A         1520 		lda	#0ah
0BB9 F9 00         1521 		sta0	.AfterPari
0BBB 02 0C 1C      1522 		br	.EndCheckPari	
0BBE               1523 .EXP:
0BBE F5 01         1524 		lda0	.DataBuf+1
0BC0 A7 A1         1525 		cmpe	#0a1h
0BC2 07 0B CC      1526 		brnz	.CommaP
0BC5 F3 0B         1527 		lda	#0bh
0BC7 F9 00         1528 		sta0	.AfterPari
0BC9 02 0C 1C      1529 		br	.EndCheckPari
0BCC               1530 .CommaP:		
0BCC F5 01         1531 		lda0	.DataBuf+1
0BCE A7 B4         1532 		cmpe	#0b4h
0BD0 07 0B DA      1533 		brnz	.Sime
0BD3 F3 02         1534 		lda	#02h
0BD5 F9 00         1535 		sta0	.AfterPari
0BD7 02 0C 1C      1536 		br	.EndCheckPari
0BDA               1537 .Sime:		
0BDA F5 01         1538 		lda0	.DataBuf+1
0BDC A7 B0         1539 		cmpe	#0b0h
0BDE 07 0B E8      1540 		brnz	.CKBaseN
0BE1 F3 02         1541 		lda	#02h
0BE3 F9 00         1542 		sta0	.AfterPari
0BE5 02 0C 1C      1543 		br	.EndCheckPari		
+                  1544 		
+                  1545 														
0BE8               1546 .CKBaseN:
0BE8 F5 01         1547 		lda0	.DataBuf+1
0BEA A7 20         1548 		cmpe	#20h		;and
0BEC 06 0C 0B      1549 		brz	.Paris9
0BEF A7 21         1550 		cmpe	#21h		;or
0BF1 06 0C 0B      1551 		brz	.Paris9
0BF4 A7 22         1552 		cmpe	#22h		;xnor
0BF6 06 0C 0B      1553 		brz	.Paris9
0BF9 A7 23         1554 		cmpe	#23h		;xor
0BFB 06 0C 0B      1555 		brz	.Paris9
0BFE A7 24         1556 		cmpe	#24h		;not
0C00 06 0C 12      1557 		brz	.Paris5
0C03 A7 25         1558 		cmpe	#25h		;neg
0C05 06 0C 12      1559 		brz	.Paris5
0C08 02 0C 19      1560 		br	.CKFunc
0C0B               1561 .Paris9:
0C0B F3 09         1562 		lda	#09h
0C0D F9 00         1563 		sta0	.AfterPari
0C0F 02 0C 1C      1564 		br	.EndCheckPari
0C12               1565 .Paris5:	
0C12 F3 06         1566 		lda	#06h		;05h
0C14 F9 00         1567 		sta0	.AfterPari
0C16 02 0C 1C      1568 		br	.EndCheckPari				
0C19               1569 .CKFunc:
+                  1570 
0C19 20 0E C2      1571 		call	.CheckFuncd
+                  1572 
0C1C               1573 .EndCheckPari:
0C1C 24            1574 		ret		
+                  1575 ;-------------------------------------------
0C1D               1576 .PushStackCls:
+                  1577 		 
0C1D 20 0F BF      1578 		call	.ClosEndPS
0C20               1579 .PushStack:
0C20 F5 00         1580 		lda0	.DataBuf
0C22 F9 00         1581 		sta0	.Buf1
0C24 20 0C 2A      1582 		call	.PushData
+                  1583 
0C27 02 00 0A      1584 		br	.IN2PS
+                  1585 
+                  1586 ;-------------------------------------------
0C2A               1587 .PushData::
0C2A F5 00         1588 		lda0	.DataBuf			 
0C2C F9 00         1589 		sta0	Temp2
0C2E F3 03         1590 		lda	#.STPP
0C30 FC 28         1591 		sta	PP
0C32 F5 00         1592 		lda0	.STDP
0C34 FC 21         1593 		sta	DP
0C36 A7 FF         1594 		cmpe	#0ffh
0C38 06 0C 68      1595 		brz	.Push2Stack
0C3B F2            1596 		lda	i
0C3C F9 00         1597 		sta0	.DataBuf
0C3E F9 01         1598 		sta0	.DataBuf+1
0C40 A7 00         1599 		cmpe	#0h
0C42 06 0C 68      1600 		brz	.Push2Stack
0C45 A7 B2         1601 		cmpe	#.LC
0C47 06 0C 68      1602 		brz	.Push2Stack
0C4A 20 0A 64      1603 		call	.CheckPari
0C4D F5 00         1604 		lda0	.AfterPari
0C4F F9 00         1605 		sta0	.BeforePari		;-12/16
0C51 F5 00         1606 		lda0	Temp2		 
0C53 F9 00         1607 		sta0	.DataBuf
0C55 F9 01         1608 		sta0	.DataBuf+1
0C57 20 0A 64      1609 		call	.CheckPari
0C5A F3 00         1610 		lda	#0h
0C5C FC 28         1611 		sta	PP
0C5E F5 00         1612 		lda0	.AfterPari
0C60 A9 00         1613 		suba	.BeforePari
0C62 05 0C 81      1614 		brnc	.PopDataEQU
0C65 06 0C 81      1615 		brz	.PopDataEQU
0C68               1616 .Push2Stack:
0C68 F5 00         1617 		lda0	Temp2
0C6

⌨️ 快捷键说明

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