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

📄 trigonom.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0637 20 00 00      1203         call    CopyData
+                  1204 
063A F1 00         1205         lda     PointZ
063C FD 00         1206         sta     PointX
+                  1207                                 ;;;move BufferZ to operandY
063E F3 00         1208         lda     #BufferZ
0640 FD 00         1209         sta     Addr1
+                  1210 
0642 F3 00         1211         lda     #OperandY
0644 FD 00         1212         sta     Addr2
+                  1213 
0646 20 00 00      1214         call    CopyData
+                  1215 
0649 F1 00         1216         lda     PointBz
064B FD 00         1217         sta     PointY
+                  1218                                 ;;;get X+(X^3/3)
064D 20 00 00      1219         call    Addition
+                  1220                                 ;;;save X+(X^3/3) to bufferZ
0650 F3 00         1221         lda     #OperandZ
0652 FD 00         1222         sta     Addr1
+                  1223 
0654 F3 00         1224         lda     #BufferZ
0656 FD 00         1225         sta     Addr2
+                  1226 
0658 20 00 00      1227         call    CopyData
+                  1228 
065B F1 00         1229         lda     PointZ
065D FD 00         1230         sta     PointBz
+                  1231                         ;;;get X^5
065F F3 5C         1232         lda     #BufferXn       ;load X^3 to operandx
0661 FD 00         1233         sta     Addr1
+                  1234 
0663 F3 00         1235         lda     #OperandX
0665 FD 00         1236         sta     Addr2
+                  1237 
0667 20 00 00      1238         call    CopyData
+                  1239 
066A F1 5B         1240         lda     PointXn
066C FD 00         1241         sta     PointX
+                  1242                         ;;;load X^2 to operandy
066E F3 00         1243         lda     #Buffer
0670 FD 00         1244         sta     Addr1
+                  1245 
0672 F3 00         1246         lda     #OperandY
0674 FD 00         1247         sta     Addr2
+                  1248 
0676 20 00 00      1249         call    CopyData
+                  1250 
0679 F1 00         1251         lda     PointB
067B FD 00         1252         sta     PointY
+                  1253                         ;;;X^3*X^2=X^5
067D 20 00 00      1254         call    Multiplation
+                  1255                         ;;;save X^5 to bufferxn
0680 F3 00         1256         lda     #OperandZ
0682 FD 00         1257         sta     Addr1
+                  1258 
0684 F3 5C         1259         lda     #BufferXn
0686 FD 00         1260         sta     Addr2
+                  1261 
0688 20 00 00      1262         call    CopyData
+                  1263 
068B F1 00         1264         lda     PointZ
068D FD 5B         1265         sta     PointXn
+                  1266                         ;;;move X^5 to operandX
068F F3 00         1267         lda     #OperandX
0691 FD 00         1268         sta     Addr2
+                  1269 
0693 20 00 00      1270         call    CopyData
+                  1271 
0696 F1 00         1272         lda     PointZ
0698 FD 00         1273         sta     PointX
+                  1274 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
069A F3 00         1275 	lda	#^TanTable1
069C FD 02         1276 	sta	TableC+2
069E F3 14         1277 	lda	#@TanTable1
06A0 FD 01         1278 	sta	TableC+1
06A2 F3 75         1279 	lda	#<TanTable1
06A4 FD 00         1280 	sta	TableC
+                  1281 	
06A6 F3 00         1282 	lda	#0
06A8 FD 00         1283 	sta	Temp2
+                  1284 	
06AA 20 08 A9      1285 	call	GetData
+                  1286 	        
+                  1287 ;                        ;;;Push 2/15 to operandy
+                  1288 ;        lda     #OperandY
+                  1289 ;        sta     r_dp
+                  1290 
+                  1291 ;        lda     #13h
+                  1292 ;        sta     i
+                  1293 ;        incdp
+                  1294 ;        lda     #33h
+                  1295 ;        sta     i
+                  1296 ;        incdp
+                  1297 ;        lda     #33h
+                  1298 ;        sta     i
+                  1299 ;        incdp
+                  1300 ;        lda     #33h
+                  1301 ;        sta     i
+                  1302 ;        incdp
+                  1303 ;        lda     #33h
+                  1304 ;        sta     i
+                  1305 ;        incdp
+                  1306 ;        lda     #33h
+                  1307 ;        sta     i
+                  1308 ;        incdp
+                  1309 ;        lda     #00h
+                  1310 ;        sta     i
+                  1311 
+                  1312 ;        lda     #0ch
+                  1313 ;        sta     PointY
+                  1314                                 ;;;2/15*X^5
06AD 20 00 00      1315         call    Multiplation
+                  1316                                 ;;;move to operandX
06B0 F3 00         1317         lda     #OperandZ
06B2 FD 00         1318         sta     Addr1
+                  1319 
06B4 F3 00         1320         lda     #OperandX
06B6 FD 00         1321         sta     Addr2
+                  1322 
06B8 20 00 00      1323         call    CopyData
+                  1324 
06BB F1 00         1325         lda     PointZ
06BD FD 00         1326         sta     PointX
+                  1327                                 ;;;move X+(X^3/3) data to Y
06BF F3 00         1328         lda     #BufferZ
06C1 FD 00         1329         sta     Addr1
+                  1330 
06C3 F3 00         1331         lda     #OperandY
06C5 FD 00         1332         sta     Addr2
+                  1333 
06C7 20 00 00      1334         call    CopyData
+                  1335 
06CA F1 00         1336         lda     PointBz
06CC FD 00         1337         sta     PointY
+                  1338                                 ;;;get X+(X^3/3)+(2/15X^5)
06CE 20 00 00      1339         call    Addition
+                  1340                                 ;;;save X+(X^3/3)+(2/15X^5) to bufferZ
06D1 F3 00         1341         lda     #OperandZ
06D3 FD 00         1342         sta     Addr1
+                  1343 
06D5 F3 00         1344         lda     #BufferZ
06D7 FD 00         1345         sta     Addr2
+                  1346 
06D9 20 00 00      1347         call    CopyData
+                  1348 
06DC F1 00         1349         lda     PointZ
06DE FD 00         1350         sta     PointBz
+                  1351                         ;;;cau X^7
+                  1352                         ;;;move X^5
06E0 F3 5C         1353         lda     #BufferXn
06E2 FD 00         1354         sta     Addr1
+                  1355 
06E4 F3 00         1356         lda     #OperandX
06E6 FD 00         1357         sta     Addr2
+                  1358 
06E8 20 00 00      1359         call    CopyData
+                  1360 
06EB F1 5B         1361         lda     PointXn
06ED FD 00         1362         sta     PointX
+                  1363                         ;;;move X^2
06EF F3 00         1364         lda     #Buffer
06F1 FD 00         1365         sta     Addr1
+                  1366 
06F3 F3 00         1367         lda     #OperandY
06F5 FD 00         1368         sta     Addr2
+                  1369 
06F7 20 00 00      1370         call    CopyData
+                  1371 
06FA F1 00         1372         lda     PointB
06FC FD 00         1373         sta     PointY
+                  1374                         ;;;X^2*X^5
06FE 20 00 00      1375         call    Multiplation
+                  1376                         ;;;move X^7 to X
0701 F3 00         1377         lda     #OperandZ
0703 FD 00         1378         sta     Addr1
+                  1379 
0705 F3 00         1380         lda     #OperandX
0707 FD 00         1381         sta     Addr2
+                  1382 
0709 20 00 00      1383         call    CopyData
+                  1384 
070C F1 00         1385         lda     PointZ
070E FD 00         1386         sta     PointX
+                  1387 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                        ;;;push 17/315
0710 F3 00         1388 	lda	#^TanTable1
0712 FD 02         1389 	sta	TableC+2
0714 F3 14         1390 	lda	#@TanTable1
0716 FD 01         1391 	sta	TableC+1
0718 F3 75         1392 	lda	#<TanTable1
071A FD 00         1393 	sta	TableC
+                  1394 	
071C F3 01         1395 	lda	#01
071E FD 00         1396 	sta	Temp2
+                  1397 	
0720 20 08 A9      1398 	call	GetData
+                  1399 	
+                  1400 ;        lda     #OperandY
+                  1401 ;        sta     r_dp
+                  1402 
+                  1403 ;        lda     #53h
+                  1404 ;        sta     i
+                  1405 ;        incdp
+                  1406 ;        lda     #96h
+                  1407 ;        sta     i
+                  1408 ;        incdp
+                  1409 ;        lda     #82h
+                  1410 ;        sta     i
+                  1411 ;        incdp
+                  1412 ;        lda     #53h
+                  1413 ;        sta     i
+                  1414 ;        incdp
+                  1415 ;        lda     #96h
+                  1416 ;        sta     i
+                  1417 ;        incdp
+                  1418 ;        lda     #82h
+                  1419 ;        sta     i
+                  1420 ;        incdp
+                  1421 ;        lda     #0
+                  1422 ;        sta     i
+                  1423 ;        lda     #0dh
+                  1424 ;        sta     PointY
+                  1425 
0723 20 00 00      1426         call    Multiplation
+                  1427                                 ;;;move (17/315)X^7 to operandX
0726 F3 00         1428         lda     #OperandZ
0728 FD 00         1429         sta     Addr1
+                  1430 
072A F3 00         1431         lda     #OperandX
072C FD 00         1432         sta     Addr2
+                  1433 
072E 20 00 00      1434         call    CopyData
+                  1435 
0731 F1 00         1436         lda     PointZ
0733 FD 00         1437         sta     PointX
+                  1438                                 ;;;lda  X+(X^3/3)+(2X^5/15)to Y
0735 F3 00         1439         lda     #BufferZ
0737 FD 00         1440         sta     Addr1
+                  1441 
0739 F3 00         1442         lda     #OperandY
073B FD 00         1443         sta     Addr2
+                  1444 
073D 20 00 00      1445         call    CopyData
+                  1446 
0740 F1 00         1447         lda     PointBz
0742 FD 00         1448         sta     PointY
+                  1449                                 ;;;get X+(X^3/3)+(2X^5/15)+(17X^7/315)
0744 20 00 00      1450         call    Addition
+                  1451                                 ;;;move X+(X^3/3)+(2X^5/15)+(17X^7/315) to X
0747 F3 00         1452         lda     #OperandZ
0749 FD 00         1453         sta     Addr1
+                  1454 
074B F3 00         1455         lda     #OperandX
074D FD 00         1456         sta     Addr2
+                  1457 
074F 20 00 00      1458         call    CopyData
+                  1459 
0752 F1 00         1460         lda     PointZ
0754 FD 00         1461         sta     PointX
+                  1462                                 ;;;save X+(X^3/3)+(2X^5/15)+(17X^7/315) to bufferZ
0756 F3 00         1463         lda     #BufferZ
0758 FD 00         1464         sta     Addr2
+                  1465 
075A 20 00 00      1466         call    CopyData
+                  1467 
075D F1 00         1468         lda     PointZ
075F FD 00         1469         sta     PointBz
+                  1470                                 ;;;move bufferTan to Y
0761 F3 52         1471         lda     #BufferTan
0763 FD 00         1472         sta     Addr1
+                  1473 
0765 F3 00         1474         lda     #OperandY
0767 FD 00         1475         sta     Addr2
+                  1476 
0769 20 00 00      1477         call    CopyData
+                  1478 
076C F1 51         1479         lda     PointT
076E FD 00         1480         sta     PointY
+                  1481 
0770 F1 50         1482         lda     SignT
0772 FD 00         1483         sta     SignY
+                  1484                                 ;;get X*Y
0774 20 00 00      1485         call    Multiplation
+                  1486 
0777 F3 00         1487         lda     #OperandZ
0779 FD 00         1488         sta     Addr1
+                  1489 
077B F3 00         1490         lda     #Buffer
077D FD 00         1491         sta     Addr2
+                  1492 
077F 20 00 00      1493         call    CopyData
+                  1494 
0782 F1 00         1495         lda     PointZ
0784 FD 00         1496         sta     PointB
+                  1497 
0786 F1 00         1498         lda     SignZ
0788 FD 00         1499         sta     SignB
+                  1500 
078A F1 50         1501  

⌨️ 快捷键说明

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