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

📄 trigonom.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
02FE FD 00          601         sta     PointZ
+                   602 
0300 F3 00          603         lda     #OperandZ
0302 8B 07          604         adda    #Length
0304 3F             605         deca
0305 FC 21          606         sta     r_dp
+                   607 
0307 F3 01          608         lda     #01h
0309 FE             609         sta     i
030A FD 00          610         sta     SignZ
030C F1 00          611         lda     SignZ
030E E9 00          612 	xora    SignTemp
0310 FD 00          613 	sta     SignZ
0312 24             614         ret
+                   615 
0313                616 Cos360:
0313                617 Sin90:
0313 F3 00          618         lda     #OperandZ
0315 FD 00          619         sta     Addr1
+                   620 
0317 F3 0E          621         lda     #Length_Z
0319 FD 00          622         sta     DpCount
+                   623 
031B 20 00 00       624         call    ClearData2
+                   625 
031E F3 00          626         lda     #0
0320 FD 00          627         sta     PointZ
0322 FD 00          628         sta     SignZ
+                   629 
0324 F3 00          630         lda     #OperandZ
0326 8B 07          631         adda    #Length
0328 3F             632         deca
0329 FC 21          633         sta     r_dp
+                   634 
032B F3 01          635         lda     #01h
032D FE             636         sta     i
032E F1 00          637  	lda     SignZ
0330 E9 00          638 	xora    SignTemp
0332 FD 00          639 	sta     SignZ
0334 24             640         ret
0335                641 Cos60:
0335 F3 00          642         lda     #OperandZ
0337 FD 00          643         sta     Addr1
+                   644 
0339 F3 0E          645         lda     #Length_Z
033B FD 00          646         sta     DpCount
+                   647 
033D 20 00 00       648         call    ClearData2
+                   649 
0340 F3 01          650         lda     #01h
0342 FD 00          651         sta     PointZ
+                   652 
0344 F3 00          653         lda     #OperandZ
0346 8B 07          654         adda    #Length
0348 3F             655         deca
0349 FC 21          656         sta     r_dp
+                   657 
034B F3 05          658         lda     #05h
034D FE             659         sta     i
+                   660 
034E 02 02 C8       661         br      EndCos
0351                662 Sin30:
0351 F3 00          663         lda     #OperandZ
0353 FD 00          664         sta     Addr1
+                   665 
0355 F3 0E          666         lda     #Length_Z
0357 FD 00          667         sta     DpCount
+                   668 
0359 20 00 00       669         call    ClearData2
+                   670 
035C F3 01          671         lda     #01h
035E FD 00          672         sta     PointZ
+                   673 
0360 F3 00          674         lda     #OperandZ
0362 8B 07          675         adda    #Length
0364 3F             676         deca
0365 FC 21          677         sta     r_dp
+                   678 
0367 F3 05          679         lda     #05h
0369 FE             680         sta     i
+                   681 
036A 02 01 5C       682         br      EndSin
+                   683 
+                   684 ;*************************************
+                   685 ;get X*(pi/180)
+                   686 ;max data =pi/2=1.570796326....
+                   687 ;               |_|____is table cal
+                   688 ;
+                   689 ;tan(x+y)=(tan(x)+tan(y))/(1-tan(x)*tan(y))
+                   690 ;
+                   691 ;tan(Q)=X+(X^3/3)+(2X^5/15)+(17X^7/315)+...
+                   692 ;*************************************
036D                693 Tan::
+                   694         ;added by Golden
036D F5 00          695         lda0    SignX
036F F9 00          696         sta0    SignTemp
0371 F3 00          697         lda     #0
0373 F9 00          698         sta0     SignX
0375 20 00 00       699         call    ClearBuffer
+                   700 
0378 F3 00          701 	lda	#0
037A FD 07          702 	sta	OperandX+Length
+                   703 
037C F3 5C          704         lda     #BufferXn
037E FD 00          705         sta     Addr1
+                   706 
0380 20 00 00       707         call    ClearData
+                   708 
0383 F3 52          709         lda     #BufferTan
0385 FD 00          710         sta     Addr1
+                   711 
0387 20 00 00       712         call    ClearData
+                   713 
038A F3 00          714         lda     #0
038C FD 5B          715         sta     PointXn
038E FD 51          716         sta     PointT
0390 FD 5A          717         sta     SignXn
0392 FD 50          718         sta     SignT
+                   719 ;Marked by Golden        
+                   720         ;sta     SignTemp
0394 FD 00          721         sta     TanTemp
+                   722 
0396 20 09 17       723         call    CheckQuadrandtal
+                   724 
+                   725 	;;;;--------------------------tom edit by 2002.03.21
0399 F1 00          726 	lda	ErrorFlag
039B 8B 00          727 	adda	#0
039D 07 0B 0C       728 	brnz	InputErr
+                   729 	;;;;--------------------------edit by 2002.03.21
+                   730 
03A0 F1 00          731         lda     Temp1
03A2 8B 00          732         adda    #0
03A4 06 03 B8       733         brz     1$
03A7 7F             734         rorc
03A8 04 08 5B       735         brc     Tan90
03AB 7F             736         rorc
03AC 04 08 48       737         brc     Tan180
03AF 7F             738         rorc
03B0 04 08 5B       739         brc     Tan270
03B3 7F             740         rorc
03B4 04 08 48       741         brc     Tan360
03B7 7F             742         rorc
+                   743 1$:                     ;;;chk X>45'
03B8 F3 00          744         lda     #0h
03BA FD 00          745         sta     Xn
+                   746                         ;;clear operandY
03BC F3 00          747         lda     #OperandY
03BE FD 00          748         sta     Addr1
+                   749 
03C0 20 00 00       750         call    ClearData
+                   751 	;;;;-------------push 45 to  operandY
03C3 F3 00          752         lda	#OperandY
03C5 8B 07          753         adda #Length
03C7 3F             754         deca
03C8 FC 21          755         sta	r_dp
03CA F3 45          756         lda	#45h
03CC FE             757         sta	i	
+                   758 	
+                   759 ;        lda     #45h
+                   760 ;        sta     OperandY+5
+                   761 
03CD F3 00          762         lda     #0
03CF FD 00          763         sta     PointY
+                   764 
03D1 F3 00          765         lda     #OperandY
03D3 FD 00          766         sta     Addr1
+                   767 
03D5 F1 00          768         lda     PointY
03D7 A5 00          769         cmpe    PointX
03D9 06 03 F3       770         brz     9$
+                   771 8$:                     ;;;adj operandY point=operandX
03DC 20 00 00       772         call    ShiftToL
+                   773 
+                   774 	
+                   775 
03DF F1 00          776         lda     PointY
03E1 1F             777         inca
03E2 FD 00          778         sta     PointY
03E4 A5 00          779         cmpe    PointX
+                   780 ;;        brnz    8$		;;;;2001.12.27
03E6 06 03 F3       781 	brz	9$		;;;;2001.12.27
03E9 F1 00          782 	lda	OperandY	;;;;2001.12.27
03EB CB F0          783 	anda	#0f0h		;;;;2001.12.27
03ED 07 04 43       784 	brnz	7$		;;;;2001.12.27
03F0 02 03 DC       785 	br	8$		;;;;2001.12.27
+                   786 9$:
03F3 F3 00          787         lda     #OperandX
03F5 FD 00          788         sta     Addr1
+                   789 
03F7 F3 00          790         lda     #OperandY
03F9 FD 00          791         sta     Addr2
+                   792 
03FB F3 07          793         lda     #Length
03FD FD 00          794         sta     DpCount
+                   795                         ;;;compare X,Y
03FF 20 00 00       796         call    CompareData
+                   797 
0402 F1 00          798         lda     Temp1
0404 8B 00          799         adda    #0
0406 06 08 2D       800         brz     Tan45
0409 3F             801         deca
040A 07 04 43       802         brnz    7$
+                   803                         ;;;X>45' X=90-X
040D F3 00          804         lda     #OperandX
040F FD 00          805         sta     Addr1
+                   806 
0411 F3 00          807         lda     #OperandY
0413 FD 00          808         sta     Addr2
+                   809 
0415 20 00 00       810         call    CopyData
+                   811 
0418 F1 00          812         lda     PointX
041A FD 00          813         sta     PointY
+                   814 
041C 20 00 00       815         call    ClearData
+                   816 
041F F3 00          817         lda	#OperandX
0421 8B 07          818         adda #Length
0423 3F             819         deca
0424 FC 21          820         sta	r_dp
0426 F3 90          821         lda	#90h
0428 FE             822         sta	i
+                   823         
+                   824 ;        lda     #90h
+                   825 ;        sta     OperandX+5
+                   826 
0429 F3 00          827         lda     #0
042B FD 00          828         sta     PointX
+                   829 
042D 20 00 00       830         call    Subtration
+                   831 
0430 F3 00          832         lda     #OperandZ
0432 FD 00          833         sta     Addr1
+                   834 
0434 F3 00          835         lda     #OperandX
0436 FD 00          836         sta     Addr2
+                   837 
0438 20 00 00       838         call    CopyData
+                   839 
043B F1 00          840         lda     PointZ
043D FD 00          841         sta     PointX
+                   842 
043F F3 01          843         lda     #01h
0441 FD 00          844         sta     TanTemp
+                   845 7$:
+                   846                         ;;;Get pi
0443 F3 00          847         lda     #^Pdata
0445 FD 02          848         sta     TableC+2
+                   849 
0447 F3 0B          850         lda     #@Pdata
0449 FD 01          851         sta     TableC+1
+                   852 
044B F3 FC          853         lda     #<Pdata
044D FD 00          854         sta     TableC
+                   855 
044F F3 00          856         lda     #0
0451 FD 00          857         sta     Temp2
+                   858 
0453 20 08 A9       859         call    GetData
+                   860 
0456 F3 00          861         lda     #0
0458 FD 00          862         sta     Temp2
+                   863                                 ;;;get seta
045A 20 00 00       864         call    Multiplation
+                   865 2$:                             ;;;chk seta head
+                   866 	;;-----------------------for check OperandZ=0
045D F3 00          867 	lda	#OperandZ
045F FD 00          868 	sta	Addr1
0461 20 00 00       869 	call	CheckData
0464 F1 00          870 	lda	DpCount
0466 8B 00          871 	adda	#0
0468 06 04 85       872 	brz	3$
+                   873 	
+                   874 	;;-----------------------
046B F1 00          875         lda     OperandZ
046D CB F0          876         anda    #0f0h
046F 07 04 85       877         brnz    3$
+                   878 
0472 F3 00          879         lda     #OperandZ
0474 FD 00          880         sta     Addr1
+                   881 
0476 F3 0E          882         lda     #Length_Z
0478 FD 00          883         sta     DpCount
+                   884 
047A 20 00 00       885         call    ShiftToL2
+                   886 
047D F1 00          887         lda     PointZ
047F 1F             888         inca
0480 FD 00          889         sta     PointZ
+                   890 
0482 02 04 5D       891         br      2$
+                   892 3$:
0485 F1 00          893         lda     PointZ
0487 AB 0E          894         suba    #Length_Z	;;0ch
0489 06 04 C0       895         brz     5$
048C 05 04 A1       896         brnc    4$
+                   897 
048F F3 00          898         lda     #OperandZ
0491 FD 00          899         sta     Addr1
+                   900 
0493 F3 5C          901         lda     #BufferXn

⌨️ 快捷键说明

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