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

📄 trigonom.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0495 FD 00          902         sta     Addr2
+                   903 
0497 20 00 00       904         call    CopyData
+                   905 
049A F1 00          906         lda     PointZ
049C FD 5B          907         sta     PointXn
+                   908 
049E 02 05 A9       909         br      TanData00
+                   910 4$:                             ;;;Get table data 2
04A1 F1 00          911         lda     OperandZ
04A3 FD 00          912         sta     Xn
+                   913 
04A5 F3 00          914         lda     #OperandZ
04A7 FD 00          915         sta     Addr1
+                   916 
04A9 F3 0E          917         lda     #Length_Z
04AB FD 00          918         sta     DpCount
+                   919 
04AD 20 00 00       920         call    ShiftToL2
+                   921 
04B0 F3 0E          922         lda     #Length_Z
04B2 FD 00          923         sta     DpCount
+                   924 
04B4 20 00 00       925         call    ShiftToL2
+                   926 
04B7 F1 00          927         lda     PointZ
04B9 8B 02          928         adda    #02h
04BB FD 00          929         sta     PointZ
+                   930 
04BD 02 04 DA       931         br      6$
+                   932 5$:                             ;;;Get table data 1
04C0 F1 00          933         lda     OperandZ
04C2 7F             934         rorc
04C3 7F             935         rorc
04C4 7F             936         rorc
04C5 7F             937         rorc
04C6 CB 0F          938         anda    #0fh
04C8 FD 00          939         sta     Xn
+                   940 
04CA F3 00          941         lda     #OperandZ
04CC FD 00          942         sta     Addr1
+                   943 
04CE F3 0E          944         lda     #Length_Z
04D0 FD 00          945         sta     DpCount
+                   946 
04D2 20 00 00       947         call    ShiftToL2
+                   948 
04D5 F1 00          949         lda     PointZ
04D7 1F             950         inca
04D8 FD 00          951         sta     PointZ
+                   952 6$:                             ;;;save seta to BufferXn
04DA F3 00          953         lda     #OperandZ
04DC FD 00          954         sta     Addr1
+                   955 
04DE F3 5C          956         lda     #BufferXn
04E0 FD 00          957         sta     Addr2
+                   958 
04E2 20 00 00       959         call    CopyData
+                   960 
04E5 F1 00          961         lda     PointZ
04E7 FD 5B          962         sta     PointXn
+                   963                                 ;;;clear operandX
04E9 F3 00          964         lda     #OperandX
04EB FD 00          965         sta     Addr1
+                   966 
04ED 20 00 00       967         call    ClearData
+                   968 
04F0 F3 00          969         lda     #0
04F2 FD 00          970         sta     PointX
04F4                971 GetXAddY:                       ;;;get TanXaddY table
04F4 F3 00          972         lda     #^TanXAddY
04F6 FD 02          973         sta     TableC+2
+                   974 
04F8 F3 0C          975         lda     #@TanXAddY
04FA FD 01          976         sta     TableC+1
+                   977 
04FC F3 83          978         lda     #<TanXAddY
04FE FD 00          979         sta     TableC
+                   980 
0500 F1 00          981         lda     Xn
0502 CB F0          982         anda    #0f0h
0504 06 05 19       983         brz     1$
+                   984 
0507 F1 00          985         lda     TableC
0509 8B 50          986         adda    #50h
050B FD 00          987         sta     TableC
+                   988 
050D F1 01          989         lda     TableC+1
050F 9B 00          990         addc    #0
0511 FD 01          991         sta     TableC+1
+                   992 
0513 F1 02          993         lda     TableC+2
0515 9B 00          994         addc    #0
0517 FD 02          995         sta     TableC+2
+                   996 1$:                             ;;;Load X+Y data
0519 F1 00          997         lda     Xn
051B CB 0F          998         anda    #0fh
051D FD 00          999         sta     Temp2
+                  1000                                 ;;;get X+Y data
051F 20 08 A9      1001         call    GetData
+                  1002                                 ;;;save X+Y data to buffer
0522 F3 00         1003         lda     #OperandY
0524 FD 00         1004         sta     Addr1
+                  1005 
0526 F3 00         1006         lda     #Buffer
0528 FD 00         1007         sta     Addr2
+                  1008 
052A 20 00 00      1009         call    CopyData
+                  1010 
052D F1 00         1011         lda     PointY
052F FD 00         1012         sta     PointB
0531               1013 GetXMulY:                       ;;;reset signBz
0531 F3 00         1014         lda     #0
0533 FD 00         1015         sta     SignBz
+                  1016                         ;;;GetX*Y
0535 F3 00         1017         lda     #^TanXMulY
0537 FD 02         1018         sta     TableC+2
+                  1019 
0539 F3 0D         1020         lda     #@TanXMulY
053B FD 01         1021         sta     TableC+1
+                  1022 
053D F3 37         1023         lda     #<TanXMulY
053F FD 00         1024         sta     TableC
+                  1025 
0541 F1 00         1026         lda     Xn
0543 CB F0         1027         anda    #0f0h
0545 07 05 5F      1028         brnz    1$
+                  1029                                 ;;;set X*Y=0
0548 F3 00         1030         lda     #OperandY
054A FD 00         1031         sta     Addr1
+                  1032 
054C 20 00 00      1033         call    ClearData
+                  1034 	;;;;------------------------push 1 to operandy
054F F3 00         1035         lda     #0
0551 FD 00         1036         sta     PointY
+                  1037 
0553 F3 00         1038         lda     #OperandY
0555 8B 06         1039         adda    #Length-1
0557 FC 21         1040         sta     r_dp
+                  1041 
0559 F3 01         1042         lda     #01h
055B FE            1043         sta     i
+                  1044 
055C 02 05 84      1045         br      2$
+                  1046 1$:
055F F1 00         1047         lda     Xn
0561 CB 0F         1048         anda    #0fh
0563 FD 00         1049         sta     Temp2
+                  1050                                 ;;;get X*Y data
0565 20 08 A9      1051         call    GetData
+                  1052                                 ;;;save X*Y to bufferZ
0568 F3 00         1053         lda     #OperandY
056A FD 00         1054         sta     Addr1
+                  1055 
056C F3 00         1056         lda     #BufferZ
056E FD 00         1057         sta     Addr2
+                  1058 
0570 20 00 00      1059         call    CopyData
+                  1060 
0573 F1 00         1061         lda     PointY
0575 FD 00         1062         sta     PointBz
+                  1063 
0577 F1 00         1064         lda     Xn              ;;;if Y>=6 Sign=1
0579 CB 0F         1065         anda    #0fh
057B A7 06         1066         cmpe    #06h
057D 05 05 84      1067         brnc    2$
+                  1068 
0580 F3 01         1069         lda     #01h
0582 FD 00         1070         sta     SignBz
+                  1071 2$:
0584 F3 00         1072         lda     #Buffer
0586 FD 00         1073         sta     Addr1
+                  1074 
0588 F3 00         1075         lda     #OperandX
058A FD 00         1076         sta     Addr2
+                  1077 
058C 20 00 00      1078         call    CopyData
+                  1079 
058F F1 00         1080         lda     PointB
0591 FD 00         1081         sta     PointX
+                  1082 
0593 20 00 00      1083         call    Division
+                  1084                                 ;;;save data to bufferTan
0596 F3 00         1085         lda     #OperandZ
0598 FD 00         1086         sta     Addr1
+                  1087 
059A F3 52         1088         lda     #BufferTan
059C FD 00         1089         sta     Addr2
+                  1090 
059E 20 00 00      1091         call    CopyData
+                  1092 
05A1 F1 00         1093         lda     PointZ
05A3 FD 51         1094         sta     PointT
+                  1095 
05A5 F1 00         1096         lda     SignZ
05A7 FD 50         1097         sta     SignT
05A9               1098 TanData00:                      ;;;;table end
05A9 F3 00         1099         lda     #0
05AB FD 00         1100         sta     SignX
05AD FD 00         1101         sta     SignY
05AF FD 00         1102         sta     SignZ
+                  1103 
+                  1104                         ;;;get X^2
05B1 F3 5C         1105         lda     #BufferXn
05B3 FD 00         1106         sta     Addr1
+                  1107 
05B5 F3 00         1108         lda     #OperandX
05B7 FD 00         1109         sta     Addr2
+                  1110 
05B9 20 00 00      1111         call    CopyData
+                  1112 
05BC F1 5B         1113         lda     PointXn
05BE FD 00         1114         sta     PointX
+                  1115                                 ;;;save X to BufferZ
05C0 F3 00         1116         lda     #BufferZ
05C2 FD 00         1117         sta     Addr2
+                  1118 
05C4 20 00 00      1119         call    CopyData
+                  1120 
05C7 F1 5B         1121         lda     PointXn
05C9 FD 00         1122         sta     PointBz
+                  1123 
05CB F3 00         1124         lda     #0
05CD FD 00         1125         sta     SignBz
+                  1126 
05CF 20 0B A7      1127         call    GetXX
+                  1128                                 ;;;save X^2 to buffer
05D2 F3 00         1129         lda     #OperandZ
05D4 FD 00         1130         sta     Addr1
+                  1131 
05D6 F3 00         1132         lda     #Buffer
05D8 FD 00         1133         sta     Addr2
+                  1134 
05DA 20 00 00      1135         call    CopyData
+                  1136 
05DD F1 00         1137         lda     PointZ
05DF FD 00         1138         sta     PointB
+                  1139                                 ;;;move X^2 to Y
05E1 F3 00         1140         lda     #OperandY
05E3 FD 00         1141         sta     Addr2
+                  1142 
05E5 20 00 00      1143         call    CopyData
+                  1144 
05E8 F1 00         1145         lda     PointZ
05EA FD 00         1146         sta     PointY
+                  1147                                 ;;;move X to X
05EC F3 5C         1148         lda     #BufferXn
05EE FD 00         1149         sta     Addr1
+                  1150 
05F0 F3 00         1151         lda     #OperandX
05F2 FD 00         1152         sta     Addr2
+                  1153 
05F4 20 00 00      1154         call    CopyData
+                  1155 
05F7 F1 5B         1156         lda     PointXn
05F9 FD 00         1157         sta     PointX
+                  1158                                 ;;;X^2*X=X^3
05FB 20 00 00      1159         call    Multiplation
+                  1160                                 ;;;save X^3 to X
05FE F3 00         1161         lda     #OperandZ
0600 FD 00         1162         sta     Addr1
+                  1163 
0602 F3 00         1164         lda     #OperandX
0604 FD 00         1165         sta     Addr2
+                  1166 
0606 20 00 00      1167         call    CopyData
+                  1168 
0609 F1 00         1169         lda     PointZ
060B FD 00         1170         sta     PointX
+                  1171                                 ;;;move X^3 to BufferXn
060D F3 5C         1172         lda     #BufferXn
060F FD 00         1173         sta     Addr2
+                  1174 
0611 20 00 00      1175         call    CopyData
+                  1176 
0614 F1 00         1177         lda     PointZ
0616 FD 5B         1178         sta     PointXn
+                  1179                                 ;;;push 3 to Y
0618 F3 00         1180         lda     #OperandY
061A FD 00         1181         sta     Addr1
+                  1182 
061C 20 00 00      1183         call    ClearData
+                  1184 
061F F3 00         1185         lda     #OperandY
0621 8B 06         1186         adda    #Length-1
0623 FC 21         1187         sta     r_dp
+                  1188 
0625 F3 03         1189         lda     #03h
0627 FE            1190         sta     i
+                  1191 
0628 F3 00         1192         lda     #0
062A FD 00         1193         sta     PointY
+                  1194                                 ;;;X^3/3
062C 20 00 00      1195         call    Division
+                  1196                                 ;;;move X^3/3 to operandx
062F F3 00         1197         lda     #OperandZ
0631 FD 00         1198         sta     Addr1
+                  1199 
0633 F3 00         1200         lda     #OperandX
0635 FD 00         1201         sta     Addr2
+                  1202 

⌨️ 快捷键说明

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