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

📄 basensyntax.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
字号:
+                     1 ;/subrutine name : Basensyntax.asm
+                     2 ;/user bady      : HE
+                     3 ;/fast clock     : 4Mhz
+                     4 ;/slow clock     : 32768khz
+                     5 ;/programer      : Alton
+B 00 01

+                     6 		.area  Basensyntax(code,rel)
0000                  7 .Basensyntax::
0000 20 01 78         8 		call	.InitBasenSyntax
0003                  9 .Bsyntax:		
0003 F3 00           10 		lda	#>.INDP
0005 FC 28           11 		sta	PP		 
0007 F5 00           12 		lda0	.INDP
0009 A5 00           13 		cmpe	.DataDP
000B 06 01 59        14 		brz	.EnddataChk	
000E F3 02           15 		lda	#02h
0010 FC 28           16 		sta	PP
0012 F5 00           17 		lda0	.INDP	
0014 FC 21           18 		sta	DP
0016 F2              19 		lda	i
0017 F9 00           20 		sta0	.DataBuf
0019 A7 B6           21 		cmpe	#0b6h
001B 07 00 28        22 		brnz	1$
001E F5 00           23 		lda0	.DataDP
0020 A7 01           24 		cmpe	#01h
0022 06 00 28        25 		brz	1$
0025 02 01 4E        26 		br	.Errorsyntax		
+                    27 1$:		
0028 20 00 00        28 		call	.CheckMem
002B 20 00 00        29 		call	.Paricmp
002E F5 00           30 		lda0	.INDP
0030 A7 00           31 		cmpe	#0h
0032 06 00 7C        32 		brz	.ChkHead
0035 F5 00           33 		lda0	.DataBuf
0037 A7 B2           34 		cmpe	#0b2h
0039 06 00 A1        35 		brz	.ChkLC
003C A7 B3           36 		cmpe	#0b3h
003E 06 00 B5        37 		brz	.ChkRC
0041 F5 00           38 		lda0	.AfterPari
0043 A7 01           39 		cmpe	#01h
0045 06 00 DD        40 		brz	.ChkMem
0048 A7 04           41 		cmpe	#04h
004A 06 00 F1        42 		brz	.ChkNum
004D A7 07           43 		cmpe	#07h
004F 06 01 05        44 		brz	.ChkLogic
0052 A7 08           45 		cmpe	#08h
0054 06 01 05        46 		brz	.ChkLogic
0057 A7 09           47 		cmpe	#09h
0059 06 01 05        48 		brz	.ChkLogic
005C A7 0C           49 		cmpe	#0ch
005E 06 01 23        50 		brz	.ChkAddDec
0061 A7 0D           51 		cmpe	#0dh
0063 06 01 30        52 		brz	.ChkMulDiv
0066 A7 0E           53 		cmpe	#0eh
0068 06 01 23        54 		brz	.ChkNotNeg
006B A7 0F           55 		cmpe	#0fh
006D 06 01 23        56 		brz	.ChkTrnCode
0070                 57 .NextDP:
0070 F5 00           58 		lda0	.DataBuf
0072 F9 00           59 		sta0	.Buf1
0074 F5 00           60 		lda0	.INDP
0076 1F              61 		inca
0077 F9 00           62 		sta0	.INDP
0079 02 00 03        63 		br	.Bsyntax		
+                    64 
+                    65 				
+                    66 ;-------------------------------------------		
007C                 67 .ChkHead:
007C F5 00           68 		lda0	.DataBuf
007E A7 B2           69 		cmpe    #0b2h
0080 06 00 AD        70 		brz	.HeadLC
0083 A7 B3           71 		cmpe	#0b3h
0085 06 01 4E        72 		brz	.Errorsyntax	
0088 F5 00           73 		lda0	.AfterPari		
008A A7 07           74 		cmpe	#07h
008C 06 01 4E        75 		brz	.Errorsyntax		
008F A7 08           76 		cmpe	#08h
0091 06 01 4E        77 		brz	.Errorsyntax
0094 A7 09           78 		cmpe	#09h
0096 06 01 4E        79 		brz	.Errorsyntax
0099 A7 0D           80 		cmpe	#0dh
009B 06 01 4E        81 		brz	.Errorsyntax
009E 02 00 70        82 		br	.NextDP
00A1                 83 .ChkLC:
+                    84 		
00A1 20 00 00        85 		call	.GetPari
00A4 F5 00           86 		lda0	.Buf1
+                    87 		;cmpe	#0b3h		
+                    88 		;brz	.Errorsyntax				
00A6 F5 00           89 		lda0	.AfterPari
00A8 A7 0F           90 		cmpe	#0fh
00AA 06 01 4E        91 		brz	.Errorsyntax
00AD                 92 .HeadLC:		
00AD F5 00           93 		lda0	.LRcnt
00AF 1F              94 		inca
00B0 F9 00           95 		sta0	.LRcnt
00B2 02 00 70        96 		br	.NextDP	
00B5                 97 .ChkRC:
00B5 F5 00           98 		lda0	.LRcnt
00B7 3F              99 		deca
00B8 F9 00          100 		sta0	.LRcnt
00BA A7 FF          101 		cmpe	#0ffh
00BC 06 01 4E       102 		brz	.Errorsyntax
00BF 20 00 00       103 		call	.GetPari
00C2 F5 00          104 		lda0	.Buf1
00C4 A7 B2          105 		cmpe	#0b2h		
00C6 06 01 4E       106 		brz	.Errorsyntax				
00C9 F5 00          107 		lda0	.AfterPari
00CB A7 00          108 		cmpe	#0h
00CD 06 00 70       109 		brz	.NextDP
00D0 A7 01          110 		cmpe	#01h
00D2 06 00 70       111 		brz	.NextDP	
00D5 A7 04          112 		cmpe	#04h
00D7 06 00 70       113 		brz	.NextDP	
00DA 02 01 4E       114 		br	.Errorsyntax				
00DD                115 .ChkMem:	
00DD 20 00 00       116 		call	.GetPari		
00E0 F5 00          117 		lda0	.Buf1
00E2 A7 B3          118 		cmpe	#0b3h
00E4 06 01 4E       119 		brz	.Errorsyntax	
00E7 F5 00          120 		lda0	.AfterPari
00E9 A7 0F          121 		cmpe	#0fh	
00EB 06 01 4E       122 		brz	.Errorsyntax		
00EE 02 00 70       123 		br	.NextDP
00F1                124 .ChkNum:
00F1 20 00 00       125 		call	.GetPari		
00F4 F5 00          126 		lda0	.Buf1		
00F6 A7 B3          127 		cmpe	#0b3h		;)A
00F8 06 01 4E       128 		brz	.Errorsyntax
00FB F5 00          129 		lda0	.AfterPari
00FD A7 01          130 		cmpe	#01h		;A8
00FF 06 01 4E       131 		brz	.Errorsyntax		
0102 02 00 70       132 		br	.NextDP		
0105                133 .ChkLogic:
0105 20 00 00       134 		call	.GetPari		
0108 F5 00          135 		lda0	.Buf1
010A A7 B2          136 		cmpe	#0b2h		;(And		
010C 06 01 4E       137 		brz	.Errorsyntax		 
010F F5 00          138 		lda0	.AfterPari
0111 A7 00          139 		cmpe	#0h		 
0113 06 00 70       140 		brz	.NextDP	
0116 A7 01          141 		cmpe	#01h		;AndXor
0118 06 00 70       142 		brz	.NextDP	
011B A7 04          143 		cmpe	#04h		;AndOR
011D 06 00 70       144 		brz	.NextDP					
0120 02 01 4E       145 		br 	.Errorsyntax
0123                146 .ChkTrnCode:		
0123                147 .ChkNotNeg:				
0123                148 .ChkAddDec:
0123 20 00 00       149 		call	.GetPari						
0126 F5 00          150 		lda0	.AfterPari
0128 A7 0F          151 		cmpe	#0fh		;D-3
012A 06 01 4E       152 		brz	.Errorsyntax		 
012D 02 00 70       153 		br 	.NextDP	
+                   154 		
0130                155 .ChkMulDiv:
0130 20 00 00       156 		call	.GetPari
0133 F5 00          157 		lda0	.Buf1
0135 A7 B2          158 		cmpe	#0b2h
0137 06 01 4E       159 		brz	.Errorsyntax		 						
013A F5 00          160 		lda0	.AfterPari
013C A7 00          161 		cmpe	#0h		 
013E 06 00 70       162 		brz	.NextDP	
0141 A7 01          163 		cmpe	#01h		 
0143 06 00 70       164 		brz	.NextDP	
0146 A7 04          165 		cmpe	#04h		 
0148 06 00 70       166 		brz	.NextDP			 
014B 02 01 4E       167 		br 	.Errorsyntax
+                   168 					
+                   169 ;-------------------------------------------		
014E                170 .Errorsyntax:
014E F3 02          171 		lda	#02h
0150 F9 00          172 		sta0	ErrorFlag
0152 F5 00          173 		lda0	.INDP		
0154 F9 00          174 		sta0	.SFDP
0156 02 01 77       175 		br	.EndBsyntax	
0159                176 .EnddataChk:
0159 F5 00          177 		lda0	.DataBuf
015B A7 B2          178 		cmpe	#0b2h
015D 06 01 4E       179 		brz	.Errorsyntax
0160 20 00 00       180 		call	.GetPari
0163 F5 00          181 		lda0	.AfterPari
0165 A7 00          182 		cmpe	#0h
0167 06 01 77       183 		brz	.EndBsyntax
016A A7 01          184 		cmpe	#01h
016C 06 01 77       185 		brz	.EndBsyntax
016F A7 04          186 		cmpe	#04h
0171 06 01 77       187 		brz	.EndBsyntax
0174 02 01 4E       188 		br 	.Errorsyntax
0177                189 .EndBsyntax:		
0177 24             190 		ret					
+                   191 ;-------------------------------------------		
0178                192 .InitBasenSyntax:		
0178 F3 00          193 		lda	#0h					 
017A F9 00          194 		sta0	.BeforePari		 
017C F9 00          195 		sta0	.AfterPari
017E F9 00          196 		sta0	ErrorFlag
0180 F9 00          197 		sta0	.LRcnt			 
0182 F9 00          198 		sta0	.INDP				 		 	
0184 24             199 		ret 		
+
+Symbol Table
+
+    .AfterPari                         **** GX
+  1 .Basensyntax                       0000 GR
+    .BeforePari                        **** GX
+  1 .Bsyntax                           0003 R
+    .Buf1                              **** GX
+    .CheckMem                          **** GX
+  1 .ChkAddDec                         0123 R
+  1 .ChkHead                           007C R
+  1 .ChkLC                             00A1 R
+  1 .ChkLogic                          0105 R
+  1 .ChkMem                            00DD R
+  1 .ChkMulDiv                         0130 R
+  1 .ChkNotNeg                         0123 R
+  1 .ChkNum                            00F1 R
+  1 .ChkRC                             00B5 R
+  1 .ChkTrnCode                        0123 R
+    .DataBuf                           **** GX
+    .DataDP                            **** GX
+  1 .EndBsyntax                        0177 R
+  1 .EnddataChk                        0159 R
+  1 .Errorsyntax                       014E R
+    .GetPari                           **** GX
+  1 .HeadLC                            00AD R
+    .INDP                              **** GX
+  1 .InitBasenSyntax                   0178 R
+    .LRcnt                             **** GX
+  1 .NextDP                            0070 R
+    .Paricmp                           **** GX
+    .SFDP                              **** GX
+    ErrorFlag                          **** GX
+
+
+Area Table
+
+   0 .                                  size    0   flags 0
+   1 Basensyntax                        size  185   flags 1

⌨️ 快捷键说明

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