MSC-51 3字节和4字节浮点数计算程序,主要用于数据采集及上传,经过IEEE转换,在上位机直接显示.

  1. ;这是本人使用的MSC-51 3字节和4字节浮点数计算程序,主要用于数据采集及上传,经过IEEE转换,在上位机直接显示。
  2. ;本人还有热电阻和热电偶温度查表计算程序,有需要可EMAILmajingsong1@2911.net
  3.  
  4. ; FLOATING PROGRAM
  5. ;
  6. ;##########################################
  7. ;##########################################
  8. ;-----------------------------------------------
  9. ; IEEE754 FLOAT CONVERT TO 4 BYTES FLOAT
  10. ; INPUT: ((R0))((R0)+1)((R0)+2)((R0)+3) IEEE-754 FLOAT
  11. ; OUTPUT: R4 R5R6R7 4 BYTES FLOAT
  12. ;-----------------------------------------------
  13. IEE_F:MOV A,@R0
  14. JNZ CON_0
  15. INC R0
  16. MOV A,@R0
  17. JNZ CON_1
  18. INC R0
  19. MOV A,@R0
  20. JNZ CON_2
  21. INC R0
  22. MOV A,@R0
  23. JNZ CON_3
  24.  
  25. DEC R0
  26. DEC R0
  27. DEC R0
  28. RET
  29. CON_3:DEC R0
  30. CON_2:DEC R0
  31. CON_1:DEC R0
  32. CON_0:CLR FLAG_0
  33. INC R0
  34. MOV A,@R0
  35. RLC A
  36. MOV R5,A
  37. DEC R0
  38. MOV A,@R0
  39. RLC A
  40. MOV R4,A
  41. JNC SA_IE
  42. SETB FLAG_0
  43. SA_IE: CLR C
  44. MOV A,R4
  45. SUBB A,#7FH
  46. CLR C
  47. INC A
  48.  
  49. ,C
  50. MOV C,FLAG_0
  51. ,C
  52. MOV R4,A
  53. MOV A,R5
  54. SETB C
  55. RRC A
  56. MOV R5,A
  57. INC R0
  58. INC R0
  59. MOV A,@R0
  60. MOV R6,A
  61. INC R0
  62. MOV A,@R0
  63. MOV R7,A
  64. DEC R0
  65. DEC R0
  66. DEC R0
  67. RET
  68. ;---------------------------------------------
  69. ; 4 BYTES FLOAT CONVERT TO IEEE754 FLOAT
  70. ; INPUT: ((R0)) R2R3R4 4 BYTES FLOAT
  71. ; OUTPUT: ((R1)) ((R1)+1) ((R1)+2) ((R1)+3)
  72. ; IEEE-754 FLOAT
  73. ;---------------------------------------------
  74. F_IEE:
  75. INC R0
  76. MOV A, @R0
  77. MOV R2, A
  78. INC R0
  79. MOV A, @R0
  80. MOV R3, A
  81. INC R0
  82. MOV A, @R0
  83. MOV R4, A
  84. DEC R0
  85. DEC R0
  86. DEC R0
  87.  
  88. MOV A,R2
  89. JZ ZERO_IEE
  90. MOV A,@R0
  91.  
  92. MOV FLAG_0,C
  93. CLR ACC.
  94.  
  95. JC F_FF
  96. DEC A
  97. CLR C
  98. ADD A,#7FH
  99. LJMP F_TR
  100. F_FF: CLR C
  101. SUBB A,#02H
  102. F_TR: MOV C,FLAG_0
  103. RRC A
  104. MOV @R1,A
  105. INC R1
  106. MOV A,R2
  107. ,C
  108. MOV @R1,A
  109. INC R1
  110. MOV A,R3
  111. MOV @R1,A
  112. INC R1
  113. MOV A,R4
  114. MOV @R1,A
  115. FIEE_OFF:DEC R1
  116. DEC R1
  117. DEC R1
  118. RET
  119. ZERO_IEE:MOV @R1,A
  120. INC R1
  121. MOV @R1,A
  122. INC R1
  123. MOV @R1,A
  124. INC R1
  125. MOV @R1,A
  126. SJMP FIEE_OFF
  127. ;==========================================
  128. ; 2 BYTE MUL
  129. ; 0.R2R3 * 0.R4R50.R2R3R7
  130. ;------------------------------------------
  131. D2_MUL: MOV A, R3
  132. MOV B, R5
  133. MUL AB
  134. MOV R7, B
  135. MOV A, R3
  136. MOV B, R4
  137. MUL AB
  138. ADD A, R7
  139. MOV R7, A
  140. CLR A
  141. ADDC A, B
  142. MOV R3, A
  143. MOV A, R2
  144. MOV B, R5
  145. MUL AB
  146. ADD A, R7
  147. MOV A, R3
  148. ADDC A, B
  149. MOV R3, A
  150. , c
  151. MOV A, R2
  152. MOV B, R4
  153. MUL AB
  154. ADD A, R3
  155. MOV R3, A
  156. CLR A
  157. ADDC A, B
  158.  
  159. ADDC A, #
  160. MOV R2, A
  161. RET
  162.  
  163. ;------------------------------
  164. ; 2 BYTE DIV
  165. ; 0.R2R3R7R6 / 0.R4R50.R2R3
  166. ; INPUT 0.R2R3 < 0.R4R5
  167. ;------------------------------
  168. D2_DIV: MOV A, R1
  169. PUSH ACC
  170. MOV B, #10H
  171. A2O: CLR C
  172. MOV A, R6
  173. RLC A
  174. MOV R6, A
  175. MOV A, R7
  176. RLC A
  177. MOV R7, A
  178. MOV A, R3
  179. RLC A
  180. MOV R3, A
  181. XCH A, R2
  182. RLC A
  183. XCH A, R2
  184. , C
  185. CLR C
  186. SUBB A, R5
  187. MOV R1, A
  188. MOV A, R2
  189. SUBB A, R4
  190. , A2S
  191. JC A2R
  192. A2S: MOV R2, A
  193. MOV A, R1
  194. MOV R3, A
  195. INC R6
  196. A2R: DJNZ B, A2O
  197. POP ACC
  198. MOV R1, A
  199. MOV A, R7
  200. MOV R2, A
  201. MOV A, R6
  202. MOV R3, A
  203. RET
  204.  
  205. ;--------------------------------------
  206. ; 3 BYTE FLOAT LOAD
  207. ; ((R0))→R6,((R0)+1)→R2,((R0)+2)→R3
  208. ; ((R1))→R7,((R1)+1)→R4,((R0)+2)→R5
  209. ;--------------------------------------
  210. F3_MLD: MOV A, @R0
  211. MOV R6, A
  212. INC R0
  213. MOV A, @R0
  214. MOV R2, A
  215. INC R0
  216. MOV A, @R0
  217. MOV R3, A
  218. DEC R0
  219. DEC R0
  220. MOV A, @R1
  221. MOV R7, A
  222. INC R1
  223. MOV A, @R1
  224. MOV R4, A
  225. INC R1
  226. MOV A, @R1
  227. MOV R5, A
  228. DEC R1
  229. DEC R1
  230. RET
  231.  
  232. ;--------------------------------------
  233. ; 3 BYTE FLOAT STANDED
  234. ;--------------------------------------
  235. F3_SDT: JC M3A
  236. MOV C, FLAG39
  237. , M3B
  238. MOV A, R2
  239. RRC A
  240. MOV R2, A
  241. MOV A, R3
  242. RRC A
  243. MOV R3, A
  244. INC R6
  245. RET
  246. M3B: MOV A, R4
  247. RRC A
  248. MOV R4, A
  249. MOV A, R5
  250. RRC A
  251. MOV R5, A
  252. INC R7
  253. RET
  254. M3A: MOV A, R2
  255. JNZ M3C
  256. CJNE R3, #, M3D
  257. MOV R6, #41H
  258. M3E: RET
  259. , M3E
  260.  
  261. MOV A, R3
  262. RLC A
  263. MOV R3, A
  264. MOV A, R2
  265. RLC A
  266. MOV R2, A
  267. CLR PSW.
  268. DEC R6
  269. SJMP M3A
  270. RET
  271.  
  272. ;--------------------------------------
  273. ; 3 BYTE FLOAT ADD OR SUB
  274. ; R6R2R3 + R7R4R5R4R2R3
  275. ; R6R2R3 - R7R4R5R4R2R3
  276. ; FLAG3A = 0 ADD FLAG3A = 1 SUB
  277. ;--------------------------------------
  278. F3_ABP: MOV A, R6
  279.  
  280. MOV FLAG38, C
  281. XRL A, R7
  282. , SQ
  283. CPL FLAG3A
  284. MOV A, R6
  285.  
  286. , C
  287. MOV R6, A
  288. MOV A, R7
  289.  
  290. , C
  291. MOV R7, A
  292. SQ: CLR C
  293. MOV A, R6
  294. SUBB A, R7
  295. JZ ST
  296. CLR PSW.
  297. CLR FLAG39
  298. , SW
  299. CJNE R4, #00H, SE
  300. CJNE R5, #00H, SE
  301. ST: JB FLAG3A, SY
  302. MOV A, R3
  303. ADD A, R5
  304. MOV R3, A
  305. MOV A, R2
  306. ADDC A, R4
  307. MOV R2, A
  308. JNC SD
  309. SETB FLAG39
  310. CLR C
  311.  
  312. LCALL F3_SDT
  313. SD: MOV A, R6
  314. MOV C, FLAG38
  315. , C
  316. XCH A, R4
  317. MOV R6, A
  318. RET
  319. SW: CJNE R2, #00H, SF
  320. CJNE R3, #00H, SF
  321. MOV A, R7
  322. MOV R6, A
  323. SJMP ST
  324.  
  325. CLR C
  326. LCALL F3_SDT
  327. SJMP SQ
  328. SY: MOV A, R3
  329. CLR C
  330. SUBB A, R5
  331. MOV R3, A
  332. MOV A, R2
  333. SUBB A, R4
  334. MOV R2, A
  335. JNC SL
  336. CLR A
  337. CLR C
  338. SUBB A, R3
  339. MOV R3, A
  340. CLR A
  341. SUBB A, R2
  342. MOV R2, A
  343. CPL FLAG38
  344. SL: SETB C
  345. SJMP SF
  346.  
  347. ;--------------------------------------
  348. ;3 BYTE FLOAT ADD
  349. ; ((R0))((R0)+1)((R0)+2) + ((R1))((R1)+1)
  350. ; ((R1)+2)→R4R2R3
  351. ; FLAG3A = 0
  352. ;--------------------------------------
  353. F3_ADD: CLR FLAG3A
  354. LCALL F3_MLD
  355. LCALL F3_ABP
  356. RET
  357.  
  358. ;--------------------------------------
  359. ; 3 BYTE SUB
  360. ; ((R0))((R0)+1)((R0)+2) -
  361. ; ((R1))((R1)+1)((R1)+2)→R4R2R3
  362. ; FLAG3A = 1
  363. ;--------------------------------------
  364. F3_SUB: SETB FLAG3A
  365. LCALL F3_MLD
  366. LCALL F3_ABP
  367. RET
  368.  
  369. ;--------------------------------------
  370. ; 3 BYTE FLOAT MUL
  371. ; ((R0))((R0)+1)((R0)+2) *
  372. ; ((R1))((R1)+1)((R1)+2)→R4R2R3
  373. ;--------------------------------------
  374. F3_MUL: LCALL F3_MLD
  375. MOV A, R6
  376. XRL A, R7
  377.  
  378. MOV FLAG38, C
  379. LCALL D2_MUL
  380. MOV A, R7
  381.  
  382. , C
  383. MOV A, @R0
  384. ADD A, @R1
  385. MOV R6, A
  386. SETB C
  387. LCALL F3_SDT
  388. MOV A, R6
  389. MOV C, FLAG38
  390. , C
  391. MOV R4, A
  392. RET
  393.  
  394. ;--------------------------------------
  395. ; 3 BYTE FLOAT DIV
  396. ; ((R0))((R0)+1)((R0)+2) /
  397. ; ((R1))((R1)+1)((R1)+2)→R4(阶)R2R3
  398. ; C = 0 NORMAL ,C = 1 DIV BY 0
  399. ;--------------------------------------
  400. F3_DIV: LCALL F3_MLD
  401. MOV A, R6
  402. XRL A, R7
  403.  
  404. MOV FLAG38, C
  405. CLR A
  406. MOV R6, A
  407. MOV R7, A
  408. CJNE R4, #00H, TY
  409. CJNE R5, #00H, TY
  410. SETB C
  411. RET
  412. TY: MOV A, R3
  413. SUBB A, R5
  414. MOV A, R2
  415. SUBB A, R4
  416. JC TU
  417. CLR PSW.
  418. CLR FLAG39
  419. LCALL F3_SDT
  420. MOV A, R7
  421. RRC A
  422. MOV R7, A
  423. CLR C
  424. SJMP TY
  425. TU: CLR A
  426. XCH A, R6
  427. PUSH ACC
  428. LCALL D2_DIV
  429. POP ACC
  430. ADD A, @R0
  431. CLR C
  432. SUBB A, @R1
  433. MOV C, FLAG38
  434. , C
  435. MOV R4, A
  436. CLR C
  437. RET
  438.  
  439. ;-------------------------------
  440. ; 3BYTE FLOAT STORE
  441. ; R4R2R3 TO (R1)(R1+1)(R1+2)
  442. ;-------------------------------
  443. F3_STR: MOV A, R4
  444. MOV @R1, A
  445. INC R1
  446. MOV A, R2
  447. MOV @R1, A
  448. INC R1
  449. MOV A, R3
  450. MOV @R1, A
  451. DEC R1
  452. DEC R1
  453. RET
  454.  
  455. ;--------------------------------
  456. ; 3 BYTE FLOAT SQRT
  457. ; F0 = 0 NORMAL ,F0 = 1 ERROR
  458. ;--------------------------------
  459. F3_SQRT:MOV A, @R0
  460. , BV
  461. MOV @R1, A
  462. INC R0
  463. INC R1
  464. MOV A, @R0
  465. MOV @R1, A
  466. INC R0
  467. INC R1
  468. MOV A, @R0
  469. MOV @R1, A
  470. DEC R0
  471. DEC R0
  472. DEC R1
  473. DEC R1
  474. BM: LCALL F3_DIV
  475. MOV R6, A
  476. MOV A, @R1
  477. MOV R7, A
  478. INC R1
  479. MOV A, @R1
  480. MOV R4, A
  481. INC R1
  482. MOV A, @R1
  483. MOV R5, A
  484. DEC R1
  485. DEC R1
  486. CLR FLAG3A
  487. LCALL F3_ABP
  488. DEC R4
  489. CLR PSW.
  490. MOV A, R4
  491. MOV B, R7
  492. CJNE A, B, BN
  493. MOV A, R5
  494. SUBB A, R3
  495. ANL A, #0FCH
  496. MOV R7, A
  497. MOV A, R6
  498. SUBB A, R2
  499. JNZ BN
  500. CJNE R7, #00H, BN
  501.  
  502. BN: LCALL F3_STR
  503. , BM
  504. RET
  505.  
  506. RET
  507.  
  508. ;------------------------------------
  509. ; 3 BYTE BIN TO 4 BYTE FLOAT
  510. ; INPUT ADDRESS (R0),OUTPUT ADDRESS (R1)
  511. ;------------------------------------
  512. F3_BTF:MOV A, #10H
  513. MOV R2, A
  514. MOV A, @R0
  515. MOV R3, A
  516. INC R0
  517. MOV A, @R0
  518. MOV R4, A
  519. DEC R0
  520. MOV A, R3
  521. ORL A, R4
  522. JNZ FRLN1
  523. MOV R2, A
  524. MOV R3, A
  525. MOV R4, A
  526. JMP FRLN2
  527. FRLN1: MOV A, R3
  528. , FRLN2
  529. LCALL FRL1
  530. SJMP FRLN1
  531. FRLN2: INC R1
  532. INC R1
  533. MOV A, R4
  534. MOV @R1, A
  535. DEC R1
  536. MOV A, R3
  537. MOV @R1, A
  538. DEC R1
  539. MOV A, R2
  540. CLR ACC.
  541. CLR ACC.
  542. MOV @R1, A
  543. RET
  544.  
  545. FRL1: CLR C
  546. MOV A, R4
  547. RLC A
  548. MOV R4, A
  549. MOV A, R3
  550. RLC A
  551. MOV R3, A
  552. DEC R2
  553. MOV A, R2
  554. XRL A, #0C0H
  555. JNZ FRL1E
  556. MOV R2, A
  557. MOV R3, A
  558. MOV R4, A
  559. FRL1E: RET
  560.  
  561. ;------------------------------------
  562. ; 3 BYTE FLOAT BIN TO DEC
  563. ; INPUT DATA: FLAG3E = 0 1 <= DATA < 10
  564. ; FLAG3E = 1 FLAG3F = 0 0.2 <= DATA < 2
  565. ; FLAG3E = 1 FLAG3F = 1 0.4 <= DATA < 4
  566. ;------------------------------------
  567. F3_BTD: MOV A, @R0
  568.  
  569. MOV FLAG3C, C
  570.  
  571. , C
  572. MOV R6, A
  573. INC R0
  574. MOV A, @R0
  575. MOV R2, A
  576. INC R0
  577. MOV A, @R0
  578. MOV R3, A
  579. DEC R0
  580. DEC R0
  581. CJNE R2, #00H, PA
  582. CJNE R3, #00H, PA
  583. CLR A
  584. MOV @R1, A
  585. INC R1
  586. MOV @R1, A
  587. INC R1
  588. MOV @R1, A
  589. INC R1
  590. MOV @R1, A
  591. INC R1
  592. MOV @R1, A
  593. INC R1
  594. MOV @R1, A
  595. PL: DEC R1
  596. DEC R1
  597. DEC R1
  598. DEC R1
  599. DEC R1
  600. RET
  601. PA: MOV @R1, #00H
  602. JB FLAG3E, PB
  603. DEC @R1
  604. PB: INC R1
  605. MOV @R1, #01H
  606. JNB FLAG3E, PD
  607. INC @R1
  608. JNB FLAG3F, PD
  609. INC @R1
  610. PD: MOV A, R6
  611. CLR C
  612. SUBB A, @R1
  613. JZ PX
  614. , PE
  615. PM: DEC @R1
  616. DEC @R1
  617. DEC @R1
  618. DEC @R1
  619. PZ: MOV A, R6
  620. CLR C
  621. SUBB A, @R1
  622. JZ PY
  623. , PF
  624. PQ: JNB FLAG3E, PG
  625. DEC R6
  626. JNB FLAG3F, PG
  627. DEC R6
  628. PG: CJNE R6, #00H, PH
  629. MOV R6, #05H
  630. JNB FLAG3E, PI
  631. MOV R7, #01H
  632. JNB FLAG3F, PJ
  633. INC R7
  634. PJ: CLR A
  635. CLR C
  636. PK: XCH A, R3
  637. RLC A
  638. XCH A, R3
  639. XCH A, R2
  640. RLC A
  641. XCH A, R2
  642. RLC A
  643. DJNZ R7, PK
  644. DEC R6
  645. MOV @R1, A
  646. INC R1
  647. PI: MOV A, R3
  648. MOV B, #0AH
  649. MUL AB
  650. MOV R3, A
  651. MOV R7,B
  652. MOV A, R2
  653. MOV B, #0AH
  654. MUL AB
  655. ADD A, R7
  656. MOV R2, A
  657. CLR A
  658. ADDC A, B
  659. MOV @R1, A
  660. INC R1
  661. DJNZ R6, PI
  662. SJMP PL
  663. PX: MOV A, R2
  664. SUBB A, #80H
  665. JC PM
  666. PE: MOV R5, #0CDH
  667. MOV R4, #0CCH
  668. LCALL D2_MUL
  669. MOV A, R2
  670. , PN
  671. MOV A, R7
  672.  
  673. ORL C, ACC.
  674. MOV A, R3
  675. RLC A
  676. MOV R3, A
  677. MOV A, R2
  678. RLC A
  679. MOV R2, A
  680. DEC R6
  681. PT: MOV A, R6
  682. ADD A, #0FDH
  683. MOV R6, A
  684. DEC R1
  685. INC @R1
  686. INC R1
  687. SJMP PD
  688. TPS: SJMP PZ
  689. PH: MOV A, R2
  690. RRC A
  691. MOV R2, A
  692. MOV A, R3
  693. RRC A
  694. MOV R3, A
  695. INC R6
  696. SJMP PG
  697. PY: MOV A, #0CBH
  698. CLR C
  699. SUBB A, R3
  700. MOV A, #0CCH
  701. SUBB A, R2
  702. JC PQ
  703. PF: MOV R4, #0A0H
  704. MOV R5, #00H
  705. LCALL D2_MUL
  706. MOV A, R2
  707. , PR
  708. MOV A, R7
  709.  
  710. ORL C, ACC.
  711. MOV A, R3
  712. RLC A
  713. MOV R3, A
  714. MOV A, R2
  715. RLC A
  716. MOV R2, A
  717. DEC R6
  718. PU: MOV A, R6
  719. ADD A, #04H
  720. MOV R6, A
  721. DEC R1
  722. DEC @R1
  723. INC R1
  724. SJMP TPS
  725. PN: MOV A, R7
  726. , PT
  727. MOV A, R3
  728. ORL A, #01H
  729. MOV R3, A
  730. SJMP PT
  731. PR: MOV A, R7
  732. , PU
  733. MOV A, R3
  734. ORL A, #01H
  735. MOV R3, A
  736. SJMP PU
  737.  
  738. ;-----------------------------------
  739. ; 4 BITE FLOAT MUL
  740. ;((R0))((R0)+1)((R0)+2)((R0)+3)*
  741. ; ((R1))((R1)+1)((R1)+2)((R1)+3)
  742. ; TO R4R5R6R7
  743. ;-----------------------------------
  744. F4_MUL: LCALL F4_LD
  745. INC R1
  746. MOV A, R0
  747. PUSH ACC
  748. LCALL D3_MUL
  749. POP ACC
  750. MOV R0, A
  751. DEC R1
  752. MOV A, R2
  753.  
  754. , C
  755. MOV A, @R0
  756. XRL A, @R1
  757.  
  758. MOV FLAG38, C
  759. MOV A, @R0
  760. ADD A, @R1
  761. XCH A, R0
  762. PUSH ACC
  763. SETB C
  764. LCALL F4_STD
  765. POP ACC
  766. XCH A, R0
  767. MOV C, FLAG38
  768. , C
  769. MOV R4, A
  770. RET
  771.  
  772. ;-----------------------------------
  773. ; 4 BITE FLOAT DIV
  774. ;((R0))((R0)+1)((R0)+2)((R0)+3)/
  775. ; ((R1))((R1)+1)((R1)+2)((R1)+3)
  776. ; TO R4R5R6R7,
  777. ; C=0 NORMAL, C=1 DIV BY 0
  778. ;-----------------------------------
  779. F4_DIV: LCALL F4_LD
  780. MOV A, @R0
  781. XRL A, @R1
  782.  
  783. MOV FLAG38, C
  784. CLR A
  785. MOV R5, A
  786. MOV R6, A
  787. MOV R7, A
  788. INC R1
  789. CJNE @R1, #00H, L4A
  790. INC R1
  791. CJNE @R1, #00H, L4B
  792. INC R1
  793. CJNE @R1, #00H, L4C
  794. DEC R1
  795. DEC R1
  796. DEC R1
  797. SETB C
  798. RET
  799. L4C: DEC R1
  800. L4B: DEC R1
  801. L4A: DEC R1
  802. MOV A, @R0
  803. XCH A, R0
  804. INC R1
  805. PUSH ACC
  806. L4E: MOV A, R4
  807. INC R1
  808. INC R1
  809. SUBB A, @R1
  810. MOV A, R3
  811. DEC R1
  812. SUBB A, @R1
  813. MOV A, R2
  814. DEC R1
  815. SUBB A, @R1
  816. JC L4D
  817. CLR PSW.
  818. CLR FLAG39
  819. LCALL F4_STD
  820. MOV A, R5
  821. RRC A
  822. MOV R5, A
  823. CLR C
  824. SJMP L4E
  825. L4D: MOV A, R0
  826. PUSH ACC
  827. LCALL D3_DIV
  828. POP ACC
  829. DEC R1
  830. XCH A, R0
  831. POP ACC
  832. XCH A, R0
  833. CLR C
  834. SUBB A, @R1
  835. MOV C, FLAG38
  836. , C
  837. MOV R4, A
  838. CLR C
  839. RET
  840.  
  841. ;-----------------------------------------
  842. ; 4 BITE FLOAT LOAD
  843. ; ((R0)+1)((R0)+2)((R0)+3) TO R2R3R4
  844. ;-----------------------------------------
  845. F4_LD: INC R0
  846. MOV A, @R0
  847. MOV R2, A
  848. INC R0
  849. MOV A, @R0
  850. MOV R3, A
  851. INC R0
  852. MOV A, @R0
  853. MOV R4, A
  854. DEC R0
  855. DEC R0
  856. DEC R0
  857. RET
  858.  
  859. ;-----------------------------------------
  860. ; 4 BITE FLOAT ADD OR SUB
  861. ; ((R0))(R2)(R3)(R4) + ((R1))((R1)+1)((R1)+2)
  862. ; ((R1)+3) TO R4R5R6R7
  863. ; ((R0))(R2)(R3)(R4) - ((R1))((R1)+1)((R1)+2)
  864. ; ((R1)+3) TO R4R5R6R7
  865. ; FLAG3A=0 ADD, FLAG3A=1 SUB
  866. ;-----------------------------------------
  867. F4_AB: INC R1
  868. MOV A, @R1
  869. MOV R5, A
  870. INC R1
  871. MOV A, @R1
  872. MOV R6, A
  873. INC R1
  874. MOV A, @R1
  875. MOV R7, A
  876. DEC R1
  877. DEC R1
  878. DEC R1
  879. MOV A, @R0
  880.  
  881. MOV FLAG38, C
  882. XRL A, @R1
  883. , F4_ABT
  884. CPL FLAG3A
  885. F4_ABT:MOV A, R0
  886. PUSH ACC
  887. MOV A, @R0
  888.  
  889. , C
  890. MOV R0, A
  891. MOV A, R1
  892. PUSH ACC
  893. MOV A, @R1
  894.  
  895. , C
  896. MOV R1, A
  897. F4_SDT1:CLR C
  898. MOV A, R0
  899. SUBB A, R1
  900. JZ F4_ABTI
  901. CLR PSW.
  902. CLR FLAG39
  903. , F4_ABX
  904. CJNE R5, #00H, F4_ABG
  905. CJNE R6, #00H, F4_ABG
  906. CJNE R7, #00H, F4_ABG
  907. MOV A, R0
  908. MOV R1, A
  909. F4_ABTI:JB FLAG3A, F4_ABS
  910. MOV A, R4
  911. ADD A, R7
  912. MOV R7, A
  913. MOV A, R3
  914. ADDC A, R6
  915. MOV R6, A
  916. MOV A, R2
  917. ADDC A, R5
  918. MOV R5, A
  919. JNC F4_ABA
  920. SETB FLAG39
  921. CLR C
  922.  
  923. F4_ABL: LCALL F4_STD
  924. MOV A, R1
  925. MOV R0, A
  926. F4_ABA: POP ACC
  927. MOV R1, A
  928. POP ACC
  929. XCH A, R0
  930. MOV C, FLAG38
  931. , C
  932. XCH A, R4
  933. RET
  934. F4_ABX: CJNE R2, #00H, F4_ABG1
  935. CJNE R3, #00H, F4_ABG1
  936. CJNE R4, #00H, F4_ABG1
  937. MOV A, R1
  938. MOV R0, A
  939. SJMP F4_ABTI
  940.  
  941. F4_ABG1:CLR C
  942. LCALL F4_STD
  943. SJMP F4_SDT1
  944. F4_ABS: CLR C
  945. MOV A, R4
  946. SUBB A, R7
  947. MOV R7, A
  948. MOV A, R3
  949. SUBB A, R6
  950. MOV R6, A
  951. MOV A, R2
  952. SUBB A, R5
  953. MOV R5, A
  954. JNC F4_ABS1
  955. CLR A
  956. CLR C
  957. SUBB A, R7
  958. MOV R7, A
  959. CLR A
  960. SUBB A, R6
  961. MOV R6, A
  962. CLR A
  963. SUBB A, R5
  964. MOV R5, A
  965. CPL FLAG38
  966. F4_ABS1:SETB C
  967. CLR PSW.
  968. LCALL F4_STD
  969. SJMP F4_ABA
  970.  
  971. ;-----------------------------------------
  972. ; 4 BITE FLOAT ADD
  973. ; ((R0))(R2)(R3)(R4) + ((R1))((R1)+1)((R1)+2)
  974. ; ((R1)+3) TO R4R5R6R7
  975. ; FLAG3A=0 ADD
  976. ;-----------------------------------------
  977. F4_ADD: CLR FLAG3A
  978. LCALL F4_LD
  979. LCALL F4_AB
  980. RET
  981.  
  982. ;-----------------------------------------
  983. ; 4 BITE FLOAT SUB
  984. ; ((R0))(R2)(R3)(R4) - ((R1))((R1)+1)((R1)+2)
  985. ; ((R1)+3) TO R4R5R6R7
  986. ; FLAG3A=1 SUB
  987. ;-----------------------------------------
  988. F4_SUB: SETB FLAG3A
  989. LCALL F4_LD
  990. LCALL F4_AB
  991. RET
  992.  
  993. ;-----------------------------------------
  994. ; 4 BITE FLOAT STANDED
  995. ; F0=0 R0R2R3R4
  996. ; F0=1 R1R5R6R7
  997. ;-----------------------------------------
  998. F4_STD: JC F4A
  999. MOV C, FLAG39
  1000. , F4B
  1001. MOV A, R2
  1002. RRC A
  1003. MOV R2, A
  1004. MOV A, R3
  1005. RRC A
  1006. MOV R3, A
  1007. MOV A, R4
  1008. RRC A
  1009. MOV R4, A
  1010. INC R0
  1011. RET
  1012. F4B: MOV A, R5
  1013. RRC A
  1014. MOV R5, A
  1015. MOV A, R6
  1016. RRC A
  1017. MOV R6, A
  1018. MOV A, R7
  1019. RRC A
  1020. MOV R7, A
  1021. INC R1
  1022. RET
  1023. F4A: MOV A, R5
  1024. JNZ F4C
  1025. CJNE R6, #00H, F4D
  1026. CJNE R7, #00H, F4D
  1027. F4E: RET
  1028. , F4E ; 0E7H
  1029.  
  1030. MOV A, R7
  1031. RLC A
  1032. MOV R7, A
  1033. MOV A, R6
  1034. RLC A
  1035. MOV R6, A
  1036. MOV A, R5
  1037. RLC A
  1038. MOV R5, A
  1039. CLR PSW.
  1040. DEC R0
  1041. SJMP F4A
  1042.  
  1043. ;-----------------------------------
  1044. ; 4 BYTE FLOAT STORE
  1045. ; R4R5R6R7 TO (R0)(R0+1)(R0+2)(R0+3)
  1046. ;-----------------------------------
  1047. F4_STR: MOV A, R4
  1048. MOV @R0, A
  1049. INC R0
  1050. MOV A, R5
  1051. MOV @R0, A
  1052. INC R0
  1053. MOV A, R6
  1054. MOV @R0, A
  1055. INC R0
  1056. MOV A, R7
  1057. MOV @R0, A
  1058. DEC R0
  1059. DEC R0
  1060. DEC R0
  1061. RET
  1062.  
  1063. ;-------------------------------------------
  1064. ; 3 BYTE DIV
  1065. ; 0.R2R3R4R5R6R7 / ((R1))((R1)+1)((R1)+2)
  1066. ; TO (R0)(R0+1)(R0+2)(R0+3)
  1067. ;-------------------------------------------
  1068. D3_DIV: MOV R0, #18H
  1069. INC R1
  1070. INC R1
  1071. S3D: CLR C
  1072. MOV A, R7
  1073. RLC A
  1074. MOV R7, A
  1075. MOV A, R6
  1076. RLC A
  1077. MOV R6, A
  1078. MOV A, R5
  1079. RLC A
  1080. MOV R5, A
  1081. MOV A, R4
  1082. RLC A
  1083. MOV R4, A
  1084. XCH A, R3
  1085. RLC A
  1086. XCH A, R3
  1087. XCH A, R2
  1088. RLC A
  1089. XCH A, R2
  1090. , C
  1091. CLR C
  1092. SUBB A, @R1
  1093. DEC R1
  1094. MOV A, R3
  1095. SUBB A, @R1
  1096. DEC R1
  1097. MOV B, A
  1098. MOV A, R2
  1099. SUBB A, @R1
  1100. INC R1
  1101. INC R1
  1102. , S3A
  1103. JC S3B
  1104. S3A: CLR C
  1105. MOV R2, A
  1106. MOV A, R4
  1107. SUBB A, @R1
  1108. MOV R4, A
  1109. MOV R3, B
  1110. INC R7
  1111. S3B: DJNZ R0, S3D
  1112. DEC R1
  1113. DEC R1
  1114. RET
  1115.  
  1116. ;---------------------------------------
  1117. ; 3 BYTE MUL
  1118. ; 0.R2R3R4 * 0.((R1))((R1)+1)((R1)+2)
  1119. ; TO R5R6R2R3R4
  1120. ;---------------------------------------
  1121. D3_MUL: MOV R0, #19H
  1122. CLR C
  1123. CLR A
  1124. MOV R5, A
  1125. MOV R6, A
  1126. MOV R7, A
  1127. K3B: MOV A, R5
  1128. RRC A
  1129. MOV R5, A
  1130. MOV A, R6
  1131. RRC A
  1132. MOV R6, A
  1133. MOV A, R7
  1134. RRC A
  1135. MOV R7, A
  1136. XCH A, R2
  1137. RRC A
  1138. XCH A, R2
  1139. XCH A, R3
  1140. RRC A
  1141. XCH A, R3
  1142. XCH A, R4
  1143. RRC A
  1144. XCH A, R4
  1145. DJNZ R0, K3A
  1146. RET
  1147. K3A: JNC K3B
  1148. INC R1
  1149. INC R1
  1150. ADD A, @R1
  1151. MOV R7, A
  1152. MOV A, R6
  1153. DEC R1
  1154. ADDC A, @R1
  1155. MOV R6, A
  1156. MOV A, R5
  1157. DEC R1
  1158. ADDC A, @R1
  1159. MOV R5, A
  1160. SJMP K3B
  1161.  
  1162. ;-------------------------------------------
  1163. ; 功能:以e为底的浮点指数函数
  1164. ;入口条件:操作数在TMP0中。使用TMP0,TMP1,TMP2
  1165. ;出口信息:OV=0时,结果仍在TMP0中,OV=1时,溢出。
  1166. ;影响资源:DPTRPSWABR2R7、位1EH1FH 堆栈需求:6字节
  1167. ;-------------------------------------------
  1168. F4_EXP:
  1169. MOV R1, #TMP1
  1170. MOV A, #01H ; e(x) = 2(1.442695 * x)
  1171. MOV @R1, A
  1172. INC R1
  1173. MOV A, #0B8H
  1174. MOV @R1, A
  1175. INC R1
  1176. MOV A, #0AAH
  1177. MOV @R1, A
  1178. INC R1
  1179. MOV A, #3BH
  1180. MOV @R1, A
  1181.  
  1182. MOV R0, #TMP0
  1183. MOV R1, #TMP1
  1184. LCALL F4_MUL ;进行加权运算
  1185. MOV R0, #TMP0
  1186. LCALL F4_STR
  1187.  
  1188. E20:
  1189. MOV R0, #TMP0
  1190. MOV A, @R0
  1191. MOV R4, A
  1192. INC R0
  1193. MOV A, @R0
  1194. MOV R5, A
  1195. INC R0
  1196. MOV A, @R0
  1197. MOV R6, A
  1198. INC R0
  1199. MOV A, @R0
  1200. MOV R7, A
  1201. MOV A, R5
  1202. ORL A, R6
  1203. ORL A, R7
  1204. JNZ EXP2
  1205. EXP1:
  1206. MOV R4, #01H ;尾数为零,幂为1.000000
  1207. MOV R5, #80H
  1208. MOV R6, #00H
  1209. MOV R7, #00H
  1210. CLR OV
  1211. RET
  1212. EXP2:
  1213. MOV R0, #TMP0
  1214. MOV A, @R0
  1215. MOV R4, A ;将指数复制到工作区
  1216. INC R0
  1217. MOV A, @R0
  1218. MOV R5, A
  1219. INC R0
  1220. MOV A, @R0
  1221. MOV R6, A
  1222. INC R0
  1223. MOV A, @R0
  1224. MOV R7, A
  1225. LCALL INT
  1226. EXP4:
  1227. MOV A, R4
  1228. , EXP5
  1229. CLR ACC.
  1230. MOV R0, A
  1231. CLR C
  1232. MOV R1, #00H
  1233. MOV A, R5
  1234. PUSH ACC
  1235. EXPJ1: MOV A, R5
  1236. RLC A
  1237. MOV R5, A
  1238. MOV A, R1
  1239. RLC A
  1240. MOV R1, A
  1241. DJNZ R0, EXPJ1
  1242. POP ACC
  1243. MOV R5, A
  1244. MOV A, R4
  1245. , EXPJ2
  1246. MOV A, R1
  1247. SJMP EXP6
  1248. EXPJ2: MOV A, R1
  1249. CPL A
  1250. INC A
  1251. SJMP EXP6
  1252. EXP5: MOV A, #00H
  1253. EXP6: PUSH ACC ;暂时保存之
  1254. MOV R0, #TMP1
  1255. LCALL F4_STR
  1256. MOV R0, #TMP0
  1257. MOV R1, #TMP1
  1258. LCALL F4_SUB ;求指数的小数部分
  1259. MOV R0, #TMP0
  1260. LCALL F4_STR
  1261.  
  1262. PUSH DPH
  1263. PUSH DPL
  1264. MOV DPTR, #EXP_TABL
  1265. MOV TMP2, #41H
  1266. , #00H
  1267. , #00H
  1268. , #00H
  1269. PLN1: CLR A ;计算指数的小数部分的幂
  1270. MOV R0, #TMP1
  1271. MOVC A, @A+DPTR
  1272. MOV @R0, A
  1273. INC DPTR
  1274. INC R0
  1275. CLR A
  1276. MOVC A, @A+DPTR
  1277. MOV @R0, A
  1278. INC DPTR
  1279. INC R0
  1280. CLR A
  1281. MOVC A, @A+DPTR
  1282. MOV @R0, A
  1283. INC DPTR
  1284. INC R0
  1285. CLR A
  1286. MOVC A, @A+DPTR
  1287. MOV @R0, A
  1288. INC DPTR ;指向下一个系数
  1289. MOV R0, #TMP2
  1290. MOV R1, #TMP1
  1291. LCALL F4_ADD ;进行代数加法运算
  1292. MOV R0, #TMP2
  1293. LCALL F4_STR
  1294. CLR A ;读取下一个系数的第一个字节
  1295. MOVC A, @A+DPTR
  1296. CJNE A, #40H, PLN2;是结束标志吗?
  1297. POP DPL
  1298. POP DPH
  1299. POP ACC ;取出指数的整数部分
  1300. ADD A, R4 ;按补码加到幂的阶码上
  1301. MOV R4, A
  1302. MOV A, R4
  1303. CLR ACC. ;幂的符号为正
  1304. MOV R4, A
  1305. RET
  1306.  
  1307. PLN2:
  1308. MOV R0, #TMP0
  1309. MOV R1, #TMP2
  1310. LCALL F4_MUL ;进行乘法运算
  1311. MOV R0, #TMP2
  1312. LCALL F4_STR
  1313. LJMP PLN1 ;继续下一项运算
  1314.  
  1315. EXP_TABL:
  1316. DB 77H, 0B1H, 0C9H, 00H ; 1.3564 * 10(-3)
  1317. DB 7AH, 0A1H, 68H, 00H ; 9.8514 * 10(-3)
  1318. DB 7CH, 0E3H, 4FH, 00H ; 0.055495
  1319. DB 7EH, 0F5H, 0E7H, 00H ; 0.24014
  1320. DB 00H, 0B1H, 72H, 00H ; 0.69315
  1321. DB 01H, 80H, 00H, 00H ; 1.000000
  1322. DB 40H, 40H, 40H, 40H ;结束
  1323. ;-------------------------------------------
  1324. ; (R4)R5R6R7
  1325. ;-------------------------------------------
  1326. RLN: MOV A, R5 ;浮点数规格化
  1327. ORL A, R6 ;尾数为零否?
  1328. ORL A, R7
  1329. JNZ RLN1
  1330. MOV R4, #0C1H ;阶码取最小值
  1331. RET
  1332. RLN1: MOV A, R5
  1333. , RLN2 ;尾数最高位为一否?
  1334. CLR C ;不为一,左规一次
  1335. LCALL RL1
  1336. SJMP RLN ;继续判断
  1337. RLN2: CLR OV ;规格化结束
  1338. RET
  1339. RL1: MOV A, R7 ;第一操作数左规一次
  1340. RLC A ;尾数扩大一倍
  1341. MOV R7, A
  1342. MOV A, R6
  1343. RLC A
  1344. MOV R6, A
  1345. MOV A, R5
  1346. RLC A
  1347. MOV R5, A
  1348. DEC R4 ;阶码减一
  1349. CJNE R4, #0C0H, RL1E ;阶码下溢否?
  1350. CLR A
  1351. MOV R5, A ;阶码下溢,操作数以零计
  1352. MOV R6, A
  1353. MOV R7, A
  1354. MOV R4, #0C1H
  1355. RL1E: CLR OV
  1356. RET
  1357. RR1: MOV A, R5 ;第一操作数右规一次
  1358. RRC A ;尾数缩小一半
  1359. MOV R5, A
  1360. MOV A, R6
  1361. RRC A
  1362. MOV R6, A
  1363. MOV A, R7
  1364. RRC A
  1365. MOV R7, A
  1366. INC R4 ;阶码加一
  1367. CLR OV ;清溢出标志
  1368. CJNE R4, #40H, RR1E ;阶码上溢否?
  1369. MOV R4, #3FH ;阶码溢出
  1370. SETB OV
  1371. RR1E: RET
  1372.  
  1373. ;-------------------------------------------
  1374. ; 功能:浮点取整函数
  1375. ;入口条件:操作数在[R0]中。
  1376. ;出口信息:R4R5R6R7
  1377. ;-------------------------------------------
  1378. FINT:
  1379. MOV A, @R0
  1380. MOV R4, A ;阶存放在R4
  1381. INC R0
  1382. MOV A, @R0 ;将尾数高字节存放在R5
  1383. MOV R5, A
  1384. INC R0
  1385. MOV A, @R0 ;将尾数第二字节存放在R6
  1386. MOV R4, A
  1387. INC R0
  1388. MOV A, @R0 ;将尾数第三字节存放在R7
  1389. MOV R7, A
  1390. DEC R0 ;恢复数据指针
  1391. DEC R0
  1392. DEC R0
  1393. LCALL INT ;在工作寄存器中完成取整运算
  1394. RET
  1395.  
  1396. INT: MOV A, R5
  1397. ORL A, R6
  1398. ORL A, R7
  1399. JNZ INTA
  1400. MOV R4, #41H ;尾数为零,阶码也清零,结束取整
  1401. RET
  1402.  
  1403. INTA: MOV A, R4
  1404. CLR ACC.
  1405. JZ INTB ;阶码为零否?
  1406. , INTB;阶符为负否?
  1407. CLR ACC.
  1408. CLR C
  1409. SUBB A, #18H ;阶码小于24否?
  1410. JC INTD
  1411. RET ;阶码大于24,已经是整数
  1412. INTB: CLR A ;绝对值小于一,取整后正数为零,负数为负一
  1413. MOV R7, A
  1414. MOV R6, A
  1415. MOV R5, A
  1416. MOV R4, #41H
  1417. INTC: RET
  1418.  
  1419. INTD: CLR F0 ;舍尾标志初始化
  1420. MOV A, R4
  1421. CLR ACC.
  1422. MOV R0, A
  1423. CLR A
  1424. MOV R1, A
  1425. MOV R2, A
  1426. MOV R3, A
  1427. CLR C
  1428. INTE:
  1429. MOV A, R7
  1430. RLC A
  1431. MOV R7, A
  1432. MOV A, R6
  1433. RLC A
  1434. MOV R6, A
  1435. MOV A, R5
  1436. RLC A
  1437. MOV R5, A
  1438. MOV A, R3
  1439. RLC A
  1440. MOV R3, A
  1441. MOV A, R2
  1442. RLC A
  1443. MOV R2, A
  1444. MOV A, R1
  1445. RLC A
  1446. MOV R1, A
  1447. DJNZ R0, INTE ;阶码
  1448. MOV A, R4
  1449. CLR ACC.
  1450. MOV R0, A
  1451. MOV A, #18H
  1452. CLR C
  1453. SUBB A, R0
  1454. MOV R0, A
  1455. INTF: CLR C
  1456. MOV A, R3
  1457. RLC A
  1458. MOV R3, A
  1459. MOV A, R2
  1460. RLC A
  1461. MOV R2, A
  1462. MOV A, R1
  1463. RLC A
  1464. MOV R1, A
  1465. DJNZ R0, INTF
  1466. MOV A, R3
  1467. MOV R7, A
  1468. MOV A, R2
  1469. MOV R6, A
  1470. MOV A, R1
  1471. MOV R5, A
  1472. RET

MCS51浮点计算程序的更多相关文章

  1. 关于C标准

    关于C标准 1. 前言 本文从英文 C-FAQ (2004 年 7 月 3 日修订版) 翻译而来.本文的 中文版权为朱群英和孙云所有. 本文的内容可以自由用于个人目的,但 是不可以未经许可出版发行. ...

  2. 程序设计入门-C语言基础知识-翁恺-第一周:简单的计算程序-详细笔记(一)

    目录 第一周:简单的计算程序 1.1 第一个程序 Hello World! 1.2 变量 1.3 计算 1.4 编程作业及课后讨论 第一周:简单的计算程序 1.1 第一个程序 Hello World! ...

  3. kernel 对浮点的支持

    http://blog.chinaunix.net/uid-22545494-id-316735.html 作者: Sam(甄峰)  sam_code@hotmail.com 一:早期ARM上的浮点模 ...

  4. ARM11 S3C6410 硬件浮点(VFP)实现

    http://blog.csdn.net/liujia2100/article/details/7459683 在调试一个代码时,编译能顺利编过.可是,就是不能执行.找了半天才发现,原来是浮点问题.由 ...

  5. Linux下VFP NEON浮点编译

    http://blog.csdn.net/liujia2100/article/details/27236477 NEON:SIMD(Single Instruction Multiple Data ...

  6. 硬浮点 VFP

    http://blog.chinaunix.net/uid-27875-id-3449290.html   编译器对VFP的支持一个浮点数操作最后是翻译成VFP指令,还是翻译成fpa,或者是softf ...

  7. VS中计算程序运行时间

    VS中计算程序运行的时间   http://bbs.csdn.net/topics/39068881 有时候在设计程序完了之后需要计算程序运行的时间. 这时候可以使用Windows的库函数 GetIi ...

  8. MCS-51系列特殊功能寄存器(摘录)

    MCS-51系列特殊功能寄存器(80H~FFH) 1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据 ...

  9. Java 入门 代码2浮点数据类型

    /** * 基本数据类型之浮点类型 */ public class DataTypeDemo2 { public static void main(String[] args) { double d1 ...

随机推荐

  1. String源码

    /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...

  2. java排序算法-交换排序

    public class ExchangeSortUtils { // 冒泡 public static void bubbleSort(int[] array) { int length = arr ...

  3. java笔记14之private

    private:        1 是一个权限修饰符        2 可以修饰成员变量和成员方法        被其修饰的成员只能在本类中被访问 class Demo { //int num = 1 ...

  4. Apache服务器 配置多个网站解决方案

    2016.5.28   今周六   下午   阴     无风 周末接了个小单,弄一个企业站,用php语言:于是又要拿起好久没动的php啦! 关键第一步是搭建Apache环境,在这里本人用的是wamp ...

  5. webservice(CXF)基于3.1.1版本实例

    引言 有没有一种办法可以实现跨应用程序进行通信和跨平台进行通信呢? 换句话说,就是有什么办法可以实现我的应用程序 A 可以和应用程序 B 进行通信呢? 或者说是,我用 Java 写的应用程序和用 . ...

  6. Unity3D基础学习 NGUI Example 7-Scroll View(Panel)制作固定包裹栏,点击传递参数显示物体

    最终效果如下: 实现ScrollView主要是NGUI的三个脚本"UIDraggable Panel","UIGrid","UIDrag Panel ...

  7. js中widow.open()方法详解

    一. window.open() 支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二.基本语法: window.open(pageURL,nam ...

  8. 设计模式(二)工厂模式Factory (创建型)

    工厂模式分为三种:简单工厂模式 (Simple Factory) .工厂方法模式(Factory Method).抽象工厂模式(Abstract Factory) //举例:发送邮件和短信的例子 /* ...

  9. Java经典23种设计模式之结构型模式(一)

    结构型模式包含7种:适配器模式.桥接模式.组合模式.装饰模式.外观模式.享元模式.代理模式. 本文主要介绍适配器模式和桥接模式. 一.适配器模式(Adapter) 适配器模式事实上非常easy.就像手 ...

  10. cocos2d-x 3.6版连连看载入资源

    网上找了一个梦幻连连看的资源.大家能够百度一下.然后整理一下加到project里面去.包含声音和图片文件.后面解释怎样整理能够方便管理. 我不推荐在代码里面直接引用资源文件名称,我称之为硬编码. 做i ...