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

📄 trigonom.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
016F                300 Cos::
+                   301 ;;caul X data
+                   302 
+                   303 ;;get pi/180 data
+                   304 
016F F3 00          305         lda     #0
0171 FD 00          306         sta     SignX
+                   307 
0173 20 00 00       308         call    ClearBuffer
+                   309 
0176 F3 00          310 	lda	#0
0178 FD 07          311 	sta	OperandX+Length
+                   312 
+                   313 
017A F3 5C          314         lda     #BufferXn
017C FD 00          315         sta     Addr1
+                   316 
017E 20 00 00       317         call    ClearData
+                   318 
0181 F3 52          319         lda     #BufferTan
0183 FD 00          320         sta     Addr1
+                   321 
0185 20 00 00       322         call    ClearData
+                   323 
0188 F3 00          324         lda     #0
018A FD 5B          325         sta     PointXn
018C FD 51          326         sta     PointT
018E FD 5A          327         sta     SignXn
0190 FD 50          328         sta     SignT
0192 FD 00          329         sta     SignTemp
0194 FD 00          330         sta     TanTemp
+                   331 
0196 20 09 17       332         call    CheckQuadrandtal
+                   333 
0199 F1 00          334         lda     Temp1
019B 8B 00          335         adda    #0
019D 06 01 BA       336         brz     1$
01A0 7F             337         rorc
01A1 04 02 D9       338         brc     Cos90
01A4 7F             339         rorc
01A5 04 02 F1       340         brc     Cos180
01A8 7F             341         rorc
01A9 04 02 D9       342         brc     Cos270
01AC 7F             343         rorc
01AD 04 03 13       344         brc     Cos360
01B0 7F             345         rorc
01B1 8B 00          346         adda    #0
01B3 7F             347         rorc
01B4 8B 00          348         adda    #0
01B6 7F             349         rorc
01B7 04 03 35       350         brc     Cos60
+                   351 1$:
01BA F3 00          352         lda     #0h
01BC FD 00          353         sta     Xn
+                   354                                 ;;set   BufferZ1
01BE F3 10          355         lda     #10h
01C0 FD 00          356         sta     BufferZ
+                   357 
01C2 F3 0E          358         lda     #Length_Z
01C4 3F             359         deca
01C5 FD 00          360         sta     PointBz
+                   361 
01C7 F3 00          362         lda     #^Pdata
01C9 FD 02          363         sta     TableC+2
+                   364 
01CB F3 0B          365         lda     #@Pdata
01CD FD 01          366         sta     TableC+1
+                   367 
01CF F3 FC          368         lda     #<Pdata
01D1 FD 00          369         sta     TableC
+                   370 
01D3 F3 00          371         lda     #0
01D5 FD 00          372         sta     Temp2
+                   373 
01D7 20 08 A9       374         call    GetData
+                   375 
01DA F3 00          376         lda     #0
01DC FD 00          377         sta     Temp2
+                   378 
01DE 20 00 00       379         call    Multiplation
+                   380 
01E1 F3 00          381         lda     #OperandZ
01E3 FD 00          382         sta     Addr1
+                   383 
01E5 F3 00          384         lda     #OperandX
01E7 FD 00          385         sta     Addr2
+                   386 
01E9 20 00 00       387         call    CopyData
+                   388 
01EC F1 00          389         lda     PointZ
01EE FD 00          390         sta     PointX
+                   391 
+                   392                         ;;;get X^2
01F0 20 0B A7       393         call    GetXX
+                   394                         ;;;save X^2 to BufferXn
01F3 F3 00          395         lda     #OperandZ
01F5 FD 00          396         sta     Addr1
+                   397 
01F7 F3 5C          398         lda     #BufferXn
01F9 FD 00          399         sta     Addr2
+                   400 
01FB 20 00 00       401         call    CopyData
+                   402 
01FE F1 00          403         lda     PointZ
0200 FD 5B          404         sta     PointXn
+                   405 
0202 F3 00          406         lda     #0
0204 FD 5A          407         sta     SignXn
0206                408 CosLoop:                        ;;;move X^2 to operandX
+                   409 
0206 F3 00          410         lda     #OperandZ
0208 FD 00          411         sta     Addr1
+                   412 
020A F3 00          413         lda     #OperandX
020C FD 00          414         sta     Addr2
+                   415 
020E 20 00 00       416         call    CopyData
+                   417 
0211 F1 00          418         lda     PointZ
0213 FD 00          419         sta     PointX
+                   420 
0215 F3 00          421         lda     #^CosData
0217 FD 02          422         sta     TableC+2
+                   423 
0219 F3 0C          424         lda     #@CosData
021B FD 01          425         sta     TableC+1
+                   426 
021D F3 44          427         lda     #<CosData
021F FD 00          428         sta     TableC
+                   429 
0221 F1 00          430         lda     Xn
0223 FD 00          431         sta     Temp2
0225 1F             432         inca
0226 FD 00          433         sta     Xn
+                   434 
0228 20 08 A9       435         call    GetData
+                   436 0$:                             ;;;getX^2*(1/n!)
022B 20 00 00       437         call    Multiplation
+                   438                                 ;;;get next (1/n!)
022E F3 00          439         lda     #^CosData
0230 FD 02          440         sta     TableC+2
+                   441 
0232 F3 0C          442         lda     #@CosData
0234 FD 01          443         sta     TableC+1
+                   444 
0236 F3 44          445         lda     #<CosData
0238 FD 00          446         sta     TableC
+                   447 
023A F1 00          448         lda     Xn
023C FD 00          449         sta     Temp2
023E 1F             450         inca
023F FD 00          451         sta     Xn
0241 A7 08          452         cmpe    #08h
0243 04 02 9B       453         brc     3$
+                   454 
0246 20 08 A9       455         call    GetData
+                   456                                 ;;;move data to operandX
0249 F3 00          457         lda     #OperandY
024B FD 00          458         sta     Addr1
+                   459 
024D F3 00          460         lda     #OperandX
024F FD 00          461         sta     Addr2
+                   462 
0251 20 00 00       463         call    CopyData
+                   464 
0254 F1 00          465         lda     PointY
0256 FD 00          466         sta     PointX
+                   467 
0258 F3 00          468         lda     #0
025A FD 00          469         sta     SignX
+                   470                                 ;;;;move ans to operandY
025C F3 00          471         lda     #OperandZ
025E FD 00          472         sta     Addr1
+                   473 
0260 F3 00          474         lda     #OperandY
0262 FD 00          475         sta     Addr2
+                   476 
0264 20 00 00       477         call    CopyData
+                   478 
0267 F1 00          479         lda     PointZ
0269 FD 00          480         sta     PointY
+                   481 
026B F1 00          482         lda     SignZ
026D FD 00          483         sta     SignY
+                   484 
026F F3 00          485         lda     #0
0271 FD 00          486         sta     SignZ
+                   487 
0273 20 00 00       488         call    Subtration
+                   489 2$:
+                   490                         ;;;move ans to operandX
0276 F3 00          491         lda     #OperandZ
0278 FD 00          492         sta     Addr1
+                   493 
027A F3 00          494         lda     #OperandX
027C FD 00          495         sta     Addr2
+                   496 
027E 20 00 00       497         call    CopyData
+                   498 
0281 F1 00          499         lda     PointZ
0283 FD 00          500         sta     PointX
+                   501 
0285 F1 00          502         lda     SignZ
0287 FD 00          503         sta     SignX
+                   504                         ;;;move X^2 to operandY
0289 F3 5C          505         lda     #BufferXn
028B FD 00          506         sta     Addr1
+                   507 
028D F3 00          508         lda     #OperandY
028F FD 00          509         sta     Addr2
+                   510 
0291 20 00 00       511         call    CopyData
+                   512 
0294 F1 5B          513         lda     PointXn
0296 FD 00          514         sta     PointY
+                   515 
0298 02 02 2B       516         br      0$
+                   517 3$:
029B F3 00          518         lda     #OperandZ
029D FD 00          519         sta     Addr1
+                   520 
029F F3 00          521         lda     #OperandY
02A1 FD 00          522         sta     Addr2
+                   523 
02A3 20 00 00       524         call    CopyData
+                   525 
02A6 F1 00          526         lda     PointZ
02A8 FD 00          527         sta     PointY
+                   528 
02AA F1 00          529         lda     SignZ
02AC FD 00          530         sta     SignY
+                   531 
02AE F3 00          532         lda     #OperandX
02B0 FD 00          533         sta     Addr1
+                   534 
02B2 20 00 00       535         call    ClearData
+                   536 
02B5 F1 00          537         lda     Addr1
02B7 8B 07          538         adda    #Length
02B9 3F             539         deca
02BA FC 21          540         sta     r_dp
+                   541 
02BC F3 01          542         lda     #01h
02BE FE             543         sta     i
+                   544 
02BF F3 00          545         lda     #0
02C1 FD 00          546         sta     PointX
02C3 FD 00          547         sta     SignX
+                   548 
02C5 20 00 00       549         call    Subtration
+                   550 
02C8                551 EndCos:
02C8 F1 4F          552         lda     SignAns
02CA CB 06          553         anda    #06h
02CC 07 02 D4       554         brnz    1$
0000                555 .if 0        
+                   556         cmpe    #02h
+                   557         brz     1$
+                   558         cmpe    #04h
+                   559         brz     1$
+                   560 .endif        
02CF F3 00          561         lda     #0
02D1 FD 00          562         sta     SignZ
02D3 24             563         ret
+                   564 1$:
02D4 F3 01          565         lda     #01h
02D6 FD 00          566         sta     SignZ
02D8 24             567         ret
+                   568 
+                   569 
+                   570 ;=====================================
02D9                571 Cos90:
02D9                572 Cos270:
02D9                573 Sin180:
02D9                574 Sin360:
02D9 F3 00          575         lda     #OperandZ
02DB FD 00          576         sta     Addr1
+                   577 
02DD F3 0E          578         lda     #Length_Z
02DF FD 00          579         sta     DpCount
+                   580 
02E1 20 00 00       581         call    ClearData2
+                   582 
02E4 F3 00          583         lda     #0
02E6 FD 00          584         sta     PointZ
02E8 FD 00          585         sta     SignZ
02EA F1 00          586 	lda     SignZ
02EC E9 00          587 	xora    SignTemp
02EE FD 00          588 	sta     SignZ
02F0 24             589         ret
02F1                590 Cos180:
02F1                591 Sin270:
02F1 F3 00          592         lda     #OperandZ
02F3 FD 00          593         sta     Addr1
+                   594 
02F5 F3 0E          595         lda     #Length_Z
02F7 FD 00          596         sta     DpCount
+                   597 
02F9 20 00 00       598         call    ClearData2
+                   599 
02FC F3 00          600         lda     #0

⌨️ 快捷键说明

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