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

📄 bcdhex.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
字号:
+B 00 01

+                     1 		.area   BCD_HEX(data,abs)
+                     2 		.org	0x12f
+                     3 		
012F                  4 .M_bcdbuf::		.ds	2
0131                  5 .M_hexbuf::		.ds	2
0133                  6 .M_temp::		.ds	7
+B 00 02

+                     7 		.area   BCDHEX(code,rel)		
+                     8 ;|-------------------------------------------|		
+                     9 ;| .Hex2Bcd::For 2 bytes		     |
+                    10 ;| .Input: 				     |	
+                    11 ;|	    ex: hex=1986 bcd=6534	     |
+                    12 ;|	    19 =>.M_hexbuf		     |	
+                    13 ;|	    86 =>.M_hexbuf+1		     |	
+                    14 ;|          call  .Hex2Bcd		     |
+                    15 ;|	result:				     |	
+                    16 ;|	    65 =>.M_bcdbuf		     |	
+                    17 ;|	    34 =>.M_bcdbuf+1		     |	
+                    18 ;|-------------------------------------------|			    	
+                    19 
+                    20 ;--------------------------------------------
0000                 21 .Hex2Bcd::
0000 F3 01           22 	lda	#01h
0002 FC 28           23 	sta	PP
0004 F3 00           24         lda     #0          
0006 FD 2F           25         sta     .M_bcdbuf
0008 FD 30           26         sta     .M_bcdbuf+1
000A F3 08           27         lda     #8
000C FD 34           28         sta     .M_temp+1		 
000E F1 31           29         lda     .M_hexbuf
0010 FD 33           30         sta     .M_temp
0012                 31 .JUMP1:
0012 F1 33           32         lda     .M_temp
0014 8B 00           33         adda    #0
0016 7E              34         rolc
0017 FD 33           35         sta     .M_temp
0019 F1 30           36         lda     .M_bcdbuf+1
001B 20 00 6D        37         call    .Chk_DAA
001E 99 30           38         addc    .M_bcdbuf+1
0020 20 00 AE        39         call    .DAA
0023 FD 30           40         sta     .M_bcdbuf+1
0025 F1 2F           41         lda     .M_bcdbuf
0027 20 00 6D        42         call    .Chk_DAA
002A 99 2F           43         addc    .M_bcdbuf
002C 20 00 AE        44         call    .DAA
002F FD 2F           45         sta     .M_bcdbuf
0031 F1 34           46         lda     .M_temp+1
0033 3F              47         deca
0034 FD 34           48         sta     .M_temp+1
0036 07 00 12        49         brnz    .JUMP1
0039 F3 08           50         lda     #8
003B FD 34           51         sta     .M_temp+1
003D F1 32           52         lda     .M_hexbuf+1
003F FD 33           53         sta     .M_temp
0041                 54 .JUMP2:
0041 F1 33           55         lda     .M_temp
0043 8B 00           56         adda    #0
0045 7E              57         rolc
0046 FD 33           58         sta     .M_temp
0048 F1 30           59         lda     .M_bcdbuf+1
004A 20 00 6D        60         call    .Chk_DAA
004D 99 30           61         addc    .M_bcdbuf+1
004F 20 00 AE        62         call    .DAA
0052 FD 30           63         sta     .M_bcdbuf+1
0054 F1 2F           64         lda     .M_bcdbuf
0056 20 00 6D        65         call    .Chk_DAA
0059 99 2F           66         addc    .M_bcdbuf
005B 20 00 AE        67         call    .DAA
005E FD 2F           68         sta     .M_bcdbuf
0060 F1 34           69         lda     .M_temp+1
0062 3F              70         deca
0063 FD 34           71         sta     .M_temp+1
0065 07 00 41        72         brnz    .JUMP2   
0068 F1 2F           73         lda     .M_bcdbuf
+                    74         ;sta0	.Hbuf
006A F1 30           75         lda     .M_bcdbuf+1
+                    76         ;sta0	.Lbuf  
006C 24              77         ret
+                    78 ;-------------------------------------------        
006D                 79 .Chk_DAA:
006D FD 35           80         sta    	.M_temp+2	 
006F F0 22           81         lda     OP1
0071 FD 36           82         sta    .M_temp+3     
0073 F1 35           83         lda     .M_temp+2
0075 FD 37           84         sta     .M_temp+4	 
0077 99 37           85         addc    .M_temp+4
0079 04 00 8C        86         brc     .JUMP1$
007C CB F0           87         anda    #0xf0
007E 8B 00           88         adda    #0
0080 A7 A0           89         cmpe    #0xa0
0082 04 00 8C        90         brc     .JUMP1$
0085 F3 00           91         lda     #0
0087 FD 39           92         sta     .M_temp+6	 
0089 02 00 90        93         br      .JUMP2$
008C                 94 .JUMP1$:
008C F3 01           95         lda     #1
008E FD 39           96         sta     .M_temp+6
0090                 97 .JUMP2$:
0090 F1 37           98         lda     .M_temp+4
0092 CB 0F           99         anda    #0x0f
0094 8B 00          100         adda    #0
0096 7E             101         rolc
0097 A7 0A          102         cmpe    #0x0a
0099 04 00 A3       103         brc     .JUMP3$
009C F3 00          104         lda     #0
009E FD 38          105         sta     .M_temp+5     
00A0 02 00 A7       106         br      .JUMP4$
00A3                107 .JUMP3$:
00A3 F3 01          108         lda     #1
00A5 FD 38          109         sta     .M_temp+5     
00A7                110 .JUMP4$:
00A7 F1 36          111         lda     .M_temp+3
00A9 FC 22          112         sta     OP1
00AB F1 35          113         lda     .M_temp+2
00AD 24             114         ret
00AE                115 .DAA:
00AE FD 37          116         sta     .M_temp+4
00B0 F1 38          117         lda     .M_temp+5
00B2 CB 01          118         anda    #1                  
00B4 06 00 BD       119         brz     .NO_ADD6
00B7 F1 37          120         lda     .M_temp+4
00B9 8B 06          121         adda    #0x06
00BB FD 37          122         sta     .M_temp+4
00BD                123 .NO_ADD6:
00BD F1 39          124         lda     .M_temp+6
00BF CB 01          125         anda    #1                  
00C1 07 00 C7       126         brnz    .ADD60
00C4 F1 37          127         lda     .M_temp+4
00C6 24             128         ret
00C7                129 .ADD60:
00C7 F1 37          130         lda     .M_temp+4
00C9 8B 60          131         adda    #0x60
00CB AB 00          132         suba    #0
00CD FD 37          133         sta     .M_temp+4
+                   134         
00CF 24             135         ret
+                   136 
+                   137 ;|-------------------------------------------|		
+                   138 ;| .Bcd2Hex::For 2 bytes		     |
+                   139 ;| .Input: 				     |	
+                   140 ;|	    ex: bcd=1986 hex=07c2	     |
+                   141 ;|	    19 =>.M_bcdbuf		     |	
+                   142 ;|	    86 =>.M_bcdbuf+1		     |	
+                   143 ;|          call  .Bcd2Hex		     |
+                   144 ;|	result:				     |	
+                   145 ;|	    07 =>.M_hexbuf		     |	
+                   146 ;|	    c2 =>.M_hexbuf+1		     |	
+                   147 ;|-------------------------------------------|	
+                   148 ;--------------------------------------------
00D0                149 .Bcd2Hex::
00D0 F3 01          150 	lda	#01h
00D2 FC 28          151 	sta	PP					 
00D4 F1 2F          152         lda     .M_bcdbuf		 
00D6 FD 31          153         sta     .M_hexbuf
00D8 F1 30          154         lda     .M_bcdbuf+1		 
00DA FD 2F          155         sta     .M_bcdbuf
00DC 20 01 26       156         call    .bcdtohex
00DF F1 2F          157         lda     .M_bcdbuf
00E1 FD 32          158         sta     .M_hexbuf+1
00E3 F1 31          159         lda     .M_hexbuf
00E5 FD 2F          160         sta     .M_bcdbuf
00E7 20 01 26       161         call    .bcdtohex
00EA F1 2F          162         lda     .M_bcdbuf
00EC FD 31          163         sta     .M_hexbuf
00EE F3 00          164         lda     #0
00F0 FD 2F          165         sta     .M_bcdbuf
00F2 FD 30          166         sta     .M_bcdbuf+1
00F4 F1 31          167         lda     .M_hexbuf
00F6 FD 33          168         sta     .M_temp
00F8                169 .JMP1:
00F8 A7 00          170         cmpe    #0
00FA 06 01 11       171         brz     .JMP2
00FD F1 30          172         lda     .M_bcdbuf+1
00FF 8B 64          173         adda    #100
0101 FD 30          174         sta     .M_bcdbuf+1
0103 F1 2F          175         lda     .M_bcdbuf
0105 9B 00          176         addc    #0
0107 FD 2F          177         sta     .M_bcdbuf
0109 F1 33          178         lda     .M_temp
010B 3F             179         deca
010C FD 33          180         sta     .M_temp
010E 02 00 F8       181         br      .JMP1
0111                182 .JMP2:
0111 F1 30          183         lda     .M_bcdbuf+1
0113 89 32          184         adda    .M_hexbuf+1
0115 FD 30          185         sta     .M_bcdbuf+1
0117 F1 2F          186         lda     .M_bcdbuf
0119 9B 00          187         addc    #0
011B FD 2F          188         sta     .M_bcdbuf
+                   189         
011D F1 2F          190         lda	.M_bcdbuf
011F FD 31          191 	sta	.M_hexbuf
+                   192 	;sta0	.Hbuf
0121 F1 30          193 	lda	.M_bcdbuf+1
0123 FD 32          194 	sta	.M_hexbuf+1	        
+                   195         ;sta0	.Lbuf   
0125 24             196         ret
+                   197 ;----------------------bcd to hex-----------------------
0126                198 .bcdtohex::					;Onebyte
0126 F3 00          199                 lda     #0h
0128 FD 30          200                 sta     .M_bcdbuf+1
012A F1 2F          201 .bcd_1$:        lda     .M_bcdbuf
012C AB 16          202                 suba    #16h
012E 05 01 4C       203                 brnc    .bcd_4$
0131 FD 2F          204                 sta     .M_bcdbuf
0133 CB 0F          205                 anda    #0fh
0135 AB 0A          206                 suba    #0ah
0137 06 01 3D       207                 brz     .bcd_2$
013A 05 01 43       208                 brnc    .bcd_3$
013D F1 2F          209 .bcd_2$:        lda     .M_bcdbuf
013F AB 06          210                 suba    #06h
0141 FD 2F          211                 sta     .M_bcdbuf
0143 F1 30          212 .bcd_3$:        lda     .M_bcdbuf+1
0145 8B 10          213                 adda    #10h
0147 FD 30          214                 sta     .M_bcdbuf+1
0149 02 01 2A       215                 br      .bcd_1$
014C F1 2F          216 .bcd_4$:        lda     .M_bcdbuf
014E CB F0          217                 anda    #0f0h
0150 A7 00          218                 cmpe    #0h
0152 06 01 5B       219                 brz     .bcd_5$
0155 F1 2F          220                 lda     .M_bcdbuf
0157 AB 06          221                 suba    #06h
0159 FD 2F          222                 sta     .M_bcdbuf
015B                223 .bcd_5$:
015B F1 2F          224                 lda     .M_bcdbuf
015D 89 30          225                 adda    .M_bcdbuf+1
015F FD 2F          226                 sta     .M_bcdbuf
+                   227                 ;sta0	.Lbuf
0161 24             228                 ret
+
+Symbol Table
+
+  2 .ADD60                             00C7 R
+  2 .Bcd2Hex                           00D0 GR
+  2 .Chk_DAA                           006D R
+  2 .DAA                               00AE R
+  2 .Hex2Bcd                           0000 GR
+  2 .JMP1                              00F8 R
+  2 .JMP2                              0111 R
+  2 .JUMP1                             0012 R
+  2 .JUMP1$                            008C R
+  2 .JUMP2                             0041 R
+  2 .JUMP2$                            0090 R
+  2 .JUMP3$                            00A3 R
+  2 .JUMP4$                            00A7 R
+  1 .M_bcdbuf                          012F GR
+  1 .M_hexbuf                          0131 GR
+  1 .M_temp                            0133 GR
+  2 .NO_ADD6                           00BD R
+  2 .bcd_1$                            012A R
+  2 .bcd_2$                            013D R
+  2 .bcd_3$                            0143 R
+  2 .bcd_4$                            014C R
+  2 .bcd_5$                            015B R
+  2 .bcdtohex                          0126 GR
+
+
+Area Table
+
+   0 .                                  size    0   flags 0
+   1 BCD_HEX                            size    B   flags E
+   2 BCDHEX                             size  162   flags 1

⌨️ 快捷键说明

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