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

📄 sat.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
+                   401 			;lda	#(SDBufEnd-SDBuf+7)
0234 F3 1B          402 			lda     #27
0236 F9 02          403 			sta0	Param+2             ;; Length  
0238 20 00 00       404 			call    ClearBuf
023B F3 00          405 			lda	#0h
023D FC 28          406 			sta	PP
023F 24             407                         ret
+                   408                         
+                   409 ;// Calling the function to prepare SD operation after data input                                        
+                   410 ; Input:OperandX (number)
0240                411 QR_PrepareX:
0240                412 LR_PrepareX:
0240                413 SD_Prepare::
0240 20 00 00       414                         call  .X_trans_S
0243 20 00 74       415                         call  XSum_Trans_Y                                     
0246 20 00 00       416                         call  Addition                                         
0249 20 00 88       417                         call  Z_Trans_XSum      ;xSum+=num                       
024C 20 00 00       418                         call  .S_trans_X
024F 20 00 00       419                         call  .XSqu             ;num^2                           
0252 20 00 00       420                         call  .Z_trans_Y                                       
0255 20 00 9C       421                         call  XSquSum_Trans_X                                  
0258 20 00 00       422                         call  Addition          ;XSquSum+=num^2                  
025B 20 00 B0       423                         call  Z_Trans_XSquSum                                  
025E 20 00 00       424                         call .Put_1_to_OperandX                                
0261 20 00 60       425                         call  XCnt_Trans_Y                                     
0264 20 00 00       426                         call  Addition          ;XCnt+=1                         
0267 20 00 4C       427                         call  Z_Trans_XCnt                                     
026A 20 00 74       428                         call  XSum_Trans_Y                                     
026D 20 00 00       429                         call  .Y_trans_X                                       
0270 20 00 00       430                         call  Multiplation      ;XSum^2                          
0273 20 00 00       431                         call  .Z_trans_Buf                                     
0276 20 00 9C       432                         call  XSquSum_Trans_X                                  
0279 20 00 60       433                         call  XCnt_Trans_Y                                     
027C 20 00 00       434                         call  Multiplation      ;XCnt*XSquSum                    
027F 20 00 00       435                         call  .Z_trans_X                                       
0282 20 00 00       436                         call  .Buf_trans_Y                                     
0285 20 00 00       437                         call  Subtration        ;XCnt*XSquSum-(XSum^2)           
0288 20 00 D8       438                         call  Z_Trans_XSquDiff  ;XSquDiff=XCnt*XSquSum-(XSum^2) 
028B 24             439                         ret                                                    
+                   440 ;// Computing delta(n) for X         
+                   441 ;Input:No
+                   442 ;Output:OperandZ
028C                443 LR_CalcXPSD::
028C                444 SD_CalcPSD::
028C                445 QR_CalcXPSD::
028C 20 01 00       446                         call  XSquDiff_Trans_X       ;sqrt(XSquDiff)
028F 20 00 00       447                         call  Squ              
0292 20 00 00       448                         call  .Z_trans_X       
0295 20 00 60       449                         call  XCnt_Trans_Y          
0298 20 00 00       450                         call  Division               ;sqrt(XSquDiff)/XCnt
029B 24             451                         ret                    
+                   452 ;// Computing delta(n-1) for X          
+                   453 ;Input:No
+                   454 ;Output:OperandZ
029C                455 LR_CalcXSSD::
029C                456 SD_CalcSSD:: 
029C                457 QR_CalCXSSD::           
029C 20 00 60       458                         call  XCnt_Trans_Y           
029F 20 00 00       459                         call  .Y_trans_X       
+                   460                        ;call  .X_trans_Buf
02A2 20 00 00       461                         call  Multiplation           ;XCnt^2
02A5 20 00 00       462                         call  .Z_trans_X  
+                   463                        ;call  .Buf_trans_Y     
02A8 20 00 60       464                         call  XCnt_Trans_Y           
02AB 20 00 00       465                         call  Subtration             ;XCnt^2-XCnt
02AE 20 00 00       466                         call  .Z_trans_Y       
02B1 20 01 00       467                         call  XSquDiff_Trans_X 
02B4 20 00 00       468                         call  Division               ;sqrt(XSquDiff/XCnt^2-XCnt)
02B7 20 00 00       469                         call  .Z_trans_X
02BA 20 00 00       470                         call  Squ                    
02BD 24             471                         ret                   
+                   472 ;// Computing X's arithmetic mean           
+                   473 ;Input:No
+                   474 ;Output:OperandZ
02BE                475 QR_CalcXAvg::
02BE                476 LR_CalcXAvg::
02BE                477 SD_CalcXAvg::
02BE 20 00 74       478                         call  XSum_Trans_Y 
02C1 20 00 00       479                         call  .Y_trans_X   
02C4 20 00 60       480                         call  XCnt_Trans_Y 
02C7 20 00 00       481                         call  Division     
02CA 24             482                         ret                
+                   483 ;; Linear Regression      
+                   484 ;// Clear statistic memory for computing LR
02CB                485 LR_Scl::
02CB F3 00          486                         lda   #>LRBuf                          
02CD F9 00          487                         sta0  Param+0           ;; PP          
02CF F3 00          488                         lda   #<LRBuf                    
02D1 F9 01          489 	                sta0  Param+1           ;; DP          
02D3 F3 36          490 	                lda   #54           
02D5 F9 02          491 	                sta0  Param+2             ;; Length 
02D7 20 00 00       492 	                call  ClearBuf                         
02DA F3 00          493 	                lda   #0h                           
02DC FC 28          494 	                sta   PP                            
02DE 24             495                         ret                                    
+                   496 
+                   497 ;// Calling the function to prepare Y's SD operation after data input                                        
+                   498 ; Input:OperandX (number)
02DF                499 QR_PrePareY:
02DF                500 LR_PrepareY:
02DF 20 00 00       501                         call  .X_trans_S
02E2 20 01 14       502                         call  YSum_Trans_Y                                     
02E5 20 00 00       503                         call  Addition                                        
02E8 20 01 28       504                         call  Z_Trans_YSum       ;YSum+=num                      
02EB 20 00 00       505                         call  .S_trans_X
02EE 20 00 00       506                         call  .XSqu              ;num^2                          
02F1 20 00 00       507                         call  .Z_trans_Y                                      
02F4 20 01 3C       508                         call  YSquSum_Trans_X                                 
02F7 20 00 00       509                         call  Addition           ;YSquSum+=num^2                 
02FA 20 01 50       510                         call  Z_Trans_YSquSum                                 
+                   511                         ;call .Put_1_to_OperandX                              
+                   512                         ;call  YCnt_Trans_Y                                   
+                   513                         ;call  Addition          ;YCnt+=1                       
+                   514                         ;call  Z_Trans_YCnt                                   
02FD 20 01 14       515                         call  YSum_Trans_Y                                    
0300 20 00 00       516                         call  .Y_trans_X                                      
0303 20 00 00       517                         call  Multiplation       ;YSum^2                         
0306 20 00 00       518                         call  .Z_trans_Buf                                    
0309 20 01 3C       519                         call  YSquSum_Trans_X                                 
030C 20 00 60       520                         call  YCnt_Trans_Y                                    
030F 20 00 00       521                         call  Multiplation       ;YCnt*YSquSum                   
0312 20 00 00       522                         call  .Z_trans_X                                      
0315 20 00 00       523                         call  .Buf_trans_Y                                    
0318 20 00 00       524                         call  Subtration         ;YCnt*YSquSum-(YSum^2)         
031B 20 01 78       525                         call  Z_Trans_YSquDiff   ;YSquDiff=YCnt*YSquSum-(YSum^2)
031E 24             526                         ret                                                   
+                   527 ;// Calling the function to prepare LR operation after data input                                        
+                   528 ;Input OperandX,OperandY
031F                529 LR_Prepare::
+                   530 ;;XYSum+=NumX*NumY
031F 20 00 00       531                         call  .Y_trans_B        
0322 20 00 00       532                         call  .X_trans_Buf      
0325 20 00 00       533                         call  Multiplation      
0328 20 00 00       534                         call  .Z_trans_X        
032B 20 01 B4       535                         call  XYSum_Trans_Y     
032E 20 00 00       536                         call  Addition          
0331 20 01 C8       537                         call  Z_Trans_XYSum     
+                   538 ;;                        
0334 20 00 00       539                         call .Buf_trans_X       
0337 20 02 40       540                         call  LR_PrepareX       
+                   541 ;;                        
033A 20 00 00       542                         call  .B_trans_X        
033D 20 02 DF       543                         call  LR_PrepareY       
+                   544 ;;XSum*YSum
+                   545                         
0340 20 01 14       546                         call  YSum_Trans_Y      
0343 20 00 00       547                         call  .Y_trans_X        
0346 20 00 74       548                         call  XSum_Trans_Y
0349 20 00 00       549                         call  Multiplation
034C 20 00 00       550                         call  .Z_trans_Buf      
+                   551 ;;XYSum*XCnt                                                      
034F 20 00 60       552                         call  XCnt_Trans_Y      
0352 20 00 00       553                         call  .Y_trans_X        
0355 20 01 B4       554                         call  XYSum_Trans_Y     
0358 20 00 00       555                         call  Multiplation      
+                   556 ;;XYSum*XCnt-XSum*YSum                        
035B 20 00 00       557                         call  .Z_trans_X   
035E 20 00 00       558                         call  .Buf_trans_Y      
0361 20 00 00       559                         call  Subtration        
0364 20 01 F0       560                         call  Z_Trans_XYMulDiff  ;XYMulDiff=XYSum*XCnt-XSum*YSum
0367 24             561                         ret                     
+                   562                                                 
+                   563 ;// Computing delta(n) for Y                      
0368                564 QR_CalCYPSD::
0368                565 LR_CalcYPSD::
0368 20 01 A0       566                         call  YSquDiff_Trans_X       ;sqrt(YSquDiff)
036B 20 00 00       567                         call  Squ             
036E 20 00 00       568                         call  .Z_trans_X      
0371 20 00 60       569                         call  YCnt_Trans_Y    
0374 20 00 00       570                         call  Division               ;sqrt(YSquDiff)/YCnt
0377 24             571                         ret                   
+                   572            
+                   573 ;// Computing delta(n-1) for Y                                                       
+                   574 ; Input:No
+                   575 ; Output:OperandZ                                     
0378                576 LR_CalcYSSD::
0378 20 00 60       577                         call  YCnt_Trans_Y           
037B 20 00 00       578                         call  .Y_trans_X       
+                   579                         ;call  .X_trans_Buf
037E 20 00 00       580                         call  Multiplation           ;YCnt^2
0381 20 00 00       581                         call  .Z_trans_X  
+                   582                         ;call  .Buf_trans_Y     
0384 20 00 60       583                         call  YCnt_Trans_Y           
0387 20 00 00       584                         call  Subtration             ;YCnt^2-YCnt
038A 20 00 00       585                         call  .Z_trans_Y       
038D 20 01 A0       586                         call  YSquDiff_Trans_X 
0390 20 00 00       587                         call  Division               ;sqrt(YSquDiff/YCnt^2-YCnt)
0393 20 00 00       588                         call  .Z_trans_X
0396 20 00 00       589                         call  Squ                    
0399 24             590                         ret                    
+                   591            
+                   592 ;// Computing Y's arithmetic mean                                 
+                   593 ; Input:No
+                   594 ; Output:OperandZ                                     
039A                595 LR_CalcYAvg::
039A 20 01 14       596                         call  YSum_Trans_Y           ;YSum/YCnt
039D 20 00 00       597                         call  .Y_trans_X        
03A0 20 00 60       598                         call  YCnt_Trans_Y      
03A3 20 00 00       599                         call  Division          
03A6 24             600                         ret                     
+                   601            

⌨️ 快捷键说明

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