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

📄 sat.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
050E                803 LR_CalcYSum::               
050E 20 01 14       804                         call  YSum_Trans_Y                                  
0511 20 00 00       805                         call  .Y_trans_Z           
0514 24             806                         ret
+                   807 ;Compute Sum of XY
+                   808 ;Input:No
+                   809 ;Output:OperandZ                                                
0515                810 QR_CalcXYSum::                        
0515                811 LR_CalcXYSum::
0515 20 01 B4       812                         call  XYSum_Trans_Y     
0518 20 00 00       813                         call  .Y_trans_Z              
051B 24             814                         ret                        
+                   815 ;Compute sum of X^3
+                   816 ;input:No
+                   817 ;Output:OperandZ                        
051C                818 QR_CalcXCubeSum::
051C 20 00 EC       819                         call  XCubeSum_Trans_X
051F 20 00 00       820                         call  .X_trans_Z
0522 24             821                         ret
+                   822 ;Compute sum of X^4                        
+                   823 ;Input:No
+                   824 ;Output:OperandZ
0523                825 QR_CalcXFourSum::
0523 20 01 8C       826                         call   XFourSum_Trans_X
0526 20 00 00       827                         call   .X_trans_Z  
0529 24             828                         ret                        
+                   829                         
+                   830 ;Compute sum of [(X^2)*Y]
+                   831 ;Input:No
+                   832 ;Output:OperandZ
052A                833 QR_CalcXSquYSum::
052A 20 02 04       834                         call   XSquYSum_Trans_X
052D 20 00 00       835                         call   .X_trans_Z
0530 24             836                         ret                        
+                   837                    
+                   838                                     
+                   839 ;Input,Output:No
+                   840 ;Clear statistic memory for computing LR                        
0531                841 QR_Scl::
0531 F3 00          842                         lda   #>QRBuf                          
0533 F9 00          843                         sta0  Param+0           ;; PP          
0535 F3 00          844                         lda   #<QRBuf                    
0537 F9 01          845 	                sta0  Param+1           ;; DP          
0539 F3 51          846 	                lda   #81           
053B F9 02          847 	                sta0  Param+2             ;; Length 
053D 20 00 00       848 	                call  ClearBuf                         
0540 F3 00          849 	                lda   #0h                           
0542 FC 28          850 	                sta   PP                            
0544 24             851                         ret                                    
+                   852                         
+                   853 
+                   854 
+                   855 ;Calling the function to prepare QR operation after data input                                        
+                   856 ;Input:OperandX,OperandY
+                   857 ;Output:No
0545                858 QR_Prepare::
+                   859                         
0545 20 00 00       860                         call  .X_trans_B        ;x 
0548 20 00 00       861                         call  .Y_trans_R        ;y   
054B 20 00 00       862                         call  Multiplation      
054E 20 00 00       863                         call  .Z_trans_X        
0551 20 01 B4       864                         call  XYSum_Trans_Y     
0554 20 00 00       865                         call  Addition          
0557 20 01 C8       866                         call  Z_Trans_XYSum     
055A 20 00 00       867                         call  .B_trans_X
055D 20 02 40       868                         call   QR_PrepareX
0560 20 00 00       869                         call   .B_trans_X
0563 20 00 00       870                         call   .XSqu            ;X^2    
0566 20 00 00       871                         call  .Z_trans_Buf      ;Buf=X^2
0569 20 00 00       872                         call  .Z_trans_X      
056C 20 00 00       873                         call  .B_trans_Y        ;X
056F 20 00 00       874                         call  Multiplation      ;X*X^2=X^3                        
0572 20 00 00       875                         call  .Z_trans_Y
0575 20 00 EC       876                         call  XCubeSum_Trans_X  ;XcubeSum+=num^3
0578 20 00 00       877                         call  Addition
057B 20 00 C4       878                         call  Z_Trans_XCubeSum
057E 20 00 00       879                         call  .Buf_trans_X      ;X^2
0581 20 00 00       880                         call  .XSqu             ;X^4  
0584 20 00 00       881                         call  .Z_trans_Y
0587 20 01 8C       882                         call  XFourSum_Trans_X  
058A 20 00 00       883                         call  Addition          ;XFourSum+=X^4
058D 20 01 64       884                         call  Z_Trans_XFourSum
0590 20 00 00       885                         call  .Buf_trans_X      ;Buf=X^2  
0593 20 00 00       886                         call  .R_trans_Y        ;Y 
0596 20 00 00       887                         call   Multiplation     ;(X^2)*Y  
0599 20 00 00       888                         call   .Z_trans_Y
059C 20 02 04       889                         call   XSquYSum_Trans_X
059F 20 00 00       890                         call   Addition
05A2 20 01 DC       891                         call   Z_Trans_XSquYSum ;XSquYSum+=(X^2*Y)
05A5 20 00 00       892                         call   .R_trans_X       ;y 
05A8 20 02 DF       893                         call   QR_PrePareY                     
+                   894 ;;;
+                   895  ;;XSum*YSum
05AB 20 01 14       896                         call  YSum_Trans_Y      
05AE 20 00 00       897                         call  .Y_trans_X        
05B1 20 00 74       898                         call  XSum_Trans_Y
05B4 20 00 00       899                         call  Multiplation
05B7 20 00 00       900                         call  .Z_trans_Buf      
+                   901 ;;XYSum*XCnt                                                      
05BA 20 00 60       902                         call  XCnt_Trans_Y      
05BD 20 00 00       903                         call  .Y_trans_X        
05C0 20 01 B4       904                         call  XYSum_Trans_Y     
05C3 20 00 00       905                         call  Multiplation      
+                   906 ;;XYSum*XCnt-XSum*YSum                        
05C6 20 00 00       907                         call  .Z_trans_X   
05C9 20 00 00       908                         call  .Buf_trans_Y      
05CC 20 00 00       909                         call  Subtration        
05CF 20 01 F0       910                         call  Z_Trans_XYMulDiff  ;XYMulDiff=XYSum*XCnt-XSum*YSum
05D2 24             911                         ret
+                   912 ;Private functions for calc Q.R coefficients (A,B,C)
+                   913 ;Input:No
+                   914 ;Output:OperandZ                        
+                   915 ;Output=XSum*YSum-n*XYSum                        
05D3                916 QR_CalcXYDiff:
05D3 20 00 74       917                         call   XSum_trans_Y
05D6 20 00 00       918                         call   .Y_trans_X
05D9 20 01 14       919                         call   YSum_trans_Y
05DC 20 00 00       920                         call   Multiplation      ;XSum*YSum
05DF 20 00 00       921                         call   .Z_trans_Buf      ;Buf=XSum*YSum
05E2 20 00 60       922                         call   XCnt_Trans_Y
05E5 20 00 00       923                         call   .Y_trans_X
05E8 20 01 B4       924                         call   XYSum_Trans_Y     ;n*XYSum
05EB 20 00 00       925                         call   Multiplation
05EE 20 00 00       926                         call   .Z_trans_Y
05F1 20 00 00       927                         call   .Buf_trans_X
05F4 20 00 00       928                         call   Subtration        ;XSum*YSum-n*XYSum
05F7 24             929                         ret                        
+                   930 ;Input:No
+                   931 ;Output:OperandZ                        
+                   932 ;output=XSquSum*XSum-n*XCubeSum
05F8                933 QR_CalcXCubeDiff:
05F8 20 00 74       934                         call  XSum_trans_Y
05FB 20 00 9C       935                         call  XSquSum_Trans_X
05FE 20 00 00       936                         call  Multiplation      ;XSquSum*XSum 
0601 20 00 00       937                         call  .Z_trans_Buf      ;Buf=XSquSum*XSum 
0604 20 00 EC       938                         call  XCubeSum_Trans_X
0607 20 00 60       939                         call  XCnt_Trans_Y
060A 20 00 00       940                         call  Multiplation      ;n*XCubeSum
060D 20 00 00       941                         call  .Z_trans_Y      
0610 20 00 00       942                         call  .Buf_trans_X
0613 20 00 00       943                         call  Subtration        ;XSquSum*XSum-n*XCubeSum
0616 24             944                         ret
+                   945 ;Input:No
+                   946 ;Output:OperandZ                        
+                   947 ;Output:XSum^2-n*XsquSum                                                
0617                948 QR_CalcXSquDiff:
0617 20 00 74       949                         call  XSum_trans_Y
061A 20 00 00       950                         call  .Y_trans_X
061D 20 00 00       951                         call  Multiplation
0620 20 00 00       952                         call  .Z_trans_Buf      ;Buf=XSum^2
0623 20 00 9C       953                         call  XSquSum_Trans_X   ;XSum^2
0626 20 00 60       954                         call  XCnt_Trans_Y
0629 20 00 00       955                         call  Multiplation      ;n*XSquSum
062C 20 00 00       956                         call  .Z_trans_Y
062F 20 00 00       957                         call  .Buf_trans_X    
0632 20 00 00       958                         call  Subtration        ;XSum^2-n*XsquSum                                                
0635 24             959                         ret                        
+                   960 ;Input:No
+                   961 ;Output:OperandZ                        
+                   962 ;Output:YSum*XSquSum-n*XSquYSum
0636                963 QR_CalcXSquYDiff:
0636 20 01 14       964                         call   YSum_Trans_Y
0639 20 00 9C       965                         call   XSquSum_Trans_X
063C 20 00 00       966                         call   Multiplation  ;YSum*XSquSum
063F 20 00 00       967                         call   .Z_trans_Buf
0642 20 02 04       968                         call   XSquYSum_Trans_X
0645 20 00 60       969                         call   XCnt_Trans_Y      
0648 20 00 00       970                         call   Multiplation  ;n*XSquYSum
064B 20 00 00       971                         call   .Z_trans_Y
064E 20 00 00       972                         call   .Buf_trans_X
0651 20 00 00       973                         call   Subtration    ;YSum*XSquSum-n*XSquYSum
0654 24             974                         ret               
+                   975 ;Input:No
+                   976 ;Output:OperandZ                        
+                   977 ;Output:[XSquSum^2-n*XFourSum]
+                   978                         
0655                979 QR_CalcXFourDiff:
0655 20 00 9C       980                         call   XSquSum_Trans_X
0658 20 00 00       981                         call   .XSqu
065B 20 00 00       982                         call   .Z_trans_Buf    ;Buf=XSquSum^2
065E 20 00 60       983                         call   XCnt_Trans_Y      
0661 20 01 8C       984                         call   XFourSum_Trans_X
0664 20 00 00       985                         call   Multiplation    ;n*XFourSum
0667 20 00 00       986                         call   .Z_trans_Y
066A 20 00 00       987                         call   .Buf_trans_X
066D 20 00 00       988                         call   Subtration      ;XSquSum^2-n*XFourSum
0670 24             989                         ret                        
+                   990 ;X=4                        
0671                991 Put_4_to_OperandX:
0671 20 00 00       992                         call	.ClrX
0674 F3 04          993 		        lda	#04h
0676 F9 06          994 	   	        sta0	OperandX+6
0678 F3 00          995 	   	        lda	#0h
067A F9 00          996 	   	        sta0	PointX
067C F9 00          997 	   	        sta0	SignX
067E 24             998                         ret                        
+                   999 ;X=2                        
067F               1000 Put_2_to_OperandX:
067F 20 00 00      1001                         call	.ClrX
0682 F3 02         1002 		        lda	#02h
0684 F9 06         1

⌨️ 快捷键说明

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