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

📄 baseposfix.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 3 页
字号:
+                     1 ;/subrutine name : BasenPosfix.asm
+                     2 ;/user bady      : HE
+                     3 ;/fast clock     : 4Mhz
+                     4 ;/slow clock     : 32768khz
+                     5 ;/programer      : Alton
00A4                  6 .ADD		EQU		0xa4
00A5                  7 .DEC		EQU		0xa5
00A6                  8 .MUL		EQU		0xa6
00A7                  9 .DIV		EQU		0xa7
00B2                 10 .LC		EQU		0xb2
00B3                 11 .RC		EQU		0xb3
0020                 12 .And		EQU		0x20
0021                 13 .Or		EQU		0x21
0022                 14 .Xnor		EQU		0x22
0023                 15 .Xor		EQU		0x23
0024                 16 .Not		EQU		0x24
0025                 17 .Neg		EQU		0x25
+                    18 
+B 00 01

+                    19 			.area   basepostfix(code,rel)
0000                 20 .BaseNPosfix::
0000 20 05 11        21 		call	.InitBasePos
0003                 22 .TransbaseN:
0003 F3 00           23 		lda	#>.INDP
0005 FC 28           24 		sta	PP		 
0007 F5 00           25 		lda0	.INDP
0009 A5 00           26 		cmpe	.DataDP
000B 06 00 30        27 		brz	.EndBasePos		
000E F3 02           28 		lda	#02h
0010 FC 28           29 		sta	PP
0012 F5 00           30 		lda0	.INDP	
0014 FC 21           31 		sta	DP
0016 F2              32 		lda	i
0017 F9 00           33 		sta0	.DataBuf
0019 A7 10           34 		cmpe	#10h		;0----9 A---F
001B 04 00 94        35 		brc	.CmpOperand
001E 02 01 56        36 		br	.DOnum
+                    37 		 
0021                 38 .NextDp:		
0021 F5 00           39 		lda0	.INDP
0023 1F              40 		inca
0024 F9 00           41 		sta0	.INDP
0026 02 00 03        42 		br	.TransbaseN
0029                 43 .SynError:
0029 F3 02           44 		lda	#02h
002B F9 00           45 		sta0	ErrorFlag
002D 02 00 93        46 		br	.EedBasen		
+                    47 ;-------------------------------------------		
0030                 48 .EndBasePos:
+                    49 		
0030 F3 02           50 		lda	#02h
0032 FC 28           51 		sta	PP
0034 F5 00           52 		lda0	.PSDP	
0036 FC 21           53 		sta	DP
0038 38              54 		decdp	
0039 F0 21           55 		lda	DP	
003B A7 FF           56 		cmpe	#0ffh
003D 06 00 43        57 		brz	.BasePosEnd
0040 20 00 00        58 		call	.ClosEndPS
+                    59 
0043                 60 .BasePosEnd:
0043 F5 00           61 		lda0	.DecFlag
0045 CB 01           62 		anda	#01h
0047 06 00 5D        63 		brz	1$
004A F5 00           64 		lda0	.DataBuf
004C F9 00           65 		sta0	.Buf3		
004E F3 A8           66 		lda	#0a8h
0050 F9 00           67 		sta0	.DataBuf
0052 F3 00           68 		lda	#0h
0054 F9 00           69 		sta0	.DecFlag
0056 20 00 00        70 		call	.StoStack
0059 F5 00           71 		lda0	.Buf3
005B F9 00           72 		sta0	.DataBuf	
+                    73 1$:		
005D F3 03           74 		lda	#03h
005F FC 28           75 		sta	PP
0061 F5 00           76 		lda0	.STDP
0063 FC 21           77 		sta	DP
0065 F0 21           78 		lda	DP
0067 A7 FF           79 		cmpe	#0ffh
0069 06 00 87        80 		brz	.PosEnd
006C F2              81 		lda	i
006D F9 00           82 		sta0	.DataBuf
006F A7 00           83 		cmpe	#0h
0071 06 00 87        84 		brz	.PosEnd
0074 A7 B2           85 		cmpe	#.LC
0076 06 00 7F        86 		brz	.NotSave
0079 20 00 00        87 		call	.NoSignal		
007C 20 00 00        88 		call	.ClosEndPS
007F                 89 .NotSave:		
007F F5 00           90 		lda0	.STDP
0081 3F              91 		deca
0082 F9 00           92 		sta0	.STDP
0084 02 00 43        93 		br	.BasePosEnd
0087                 94 .PosEnd:	
0087 F3 02           95 		lda	#02h
0089 FC 28           96 		sta	PP
008B F5 00           97 		lda0	.PSDP
008D FC 21           98 		sta	DP
008F 38              99 		decdp
0090 F3 EE          100 		lda	#0eeh
0092 FE             101 		sta	i
0093                102 .EedBasen:		
0093 24             103 		ret					
+                   104 ;-------------------------------------------
0094                105 .CmpOperand:		
0094 20 00 00       106 		call	.CheckMem
0097 20 04 36       107 		call	.Paricmp
009A F5 00          108 		lda0	.DataBuf
009C A7 B2          109 		cmpe	#.LC
009E 06 00 CD       110 		brz	.DOLC
00A1 A7 B3          111 		cmpe	#.RC
00A3 06 01 15       112 		brz	.DORC
00A6 F5 00          113 		lda0	.AfterPari
00A8 F9 00          114 		sta0	.BeforePari
00AA F5 00          115 		lda0	.AfterPari
00AC A7 01          116 		cmpe	#01h
00AE 06 01 28       117 		brz	.DOmemSto
00B1 A7 04          118 		cmpe	#04h
00B3 06 01 56       119 		brz	.DOnum		
00B6 A7 0E          120 		cmpe	#0eh
00B8 06 01 D7       121 		brz	.DONotNeg		
00BB A7 0C          122 		cmpe	#0ch
00BD 06 01 6F       123 		brz	.DOaddec
00C0 A7 0D          124 		cmpe	#0dh
00C2 06 01 9A       125 		brz	.DOmuldiv	
00C5 A7 0F          126 		cmpe	#0fh
00C7 06 01 A0       127 		brz	.TransCode
00CA 02 01 C0       128 		br	.DO2Operand
+                   129 ;-------------------------------------------
00CD                130 .DOLC:
00CD F5 00          131 		lda0	.INDP
00CF A7 00          132 		cmpe	#0h
00D1 06 02 83       133 		brz	.TOStack
00D4 F5 00          134 		lda0	.Buf1
00D6 A7 B2          135 		cmpe	#.LC
00D8 06 02 83       136 		brz	.TOStack
00DB A7 B3          137 		cmpe	#.RC
00DD 06 02 E6       138 		brz	.RCAddMulCls		
00E0 20 02 49       139 		call	.GetPari		
00E3 F5 00          140 		lda0	.AfterPari
00E5 A7 00          141 		cmpe	#0h
00E7 06 02 83       142 		brz	.TOStack
00EA A7 01          143 		cmpe	#01h
00EC 06 02 A7       144 		brz	.LCAddMulCls
00EF A7 04          145 		cmpe	#04h
00F1 06 02 A7       146 		brz	.LCAddMulCls
00F4 A7 07          147 		cmpe	#07h
00F6 06 02 83       148 		brz	.TOStack
00F9 A7 08          149 		cmpe	#08h
00FB 06 02 83       150 		brz	.TOStack			
00FE A7 09          151 		cmpe	#09h
0100 06 02 83       152 		brz	.TOStack
0103 A7 0C          153 		cmpe	#0ch
0105 06 02 83       154 		brz	.TOStack
0108 A7 0D          155 		cmpe	#0dh
010A 06 02 83       156 		brz	.TOStack
010D A7 0E          157 		cmpe	#0eh
010F 06 02 83       158 		brz	.TOStack
0112 02 00 21       159 		br	.NextDp
+                   160 ;-------------------------------------------
0115                161 .DORC:		
0115 F5 00          162 		lda0	.DataBuf
0117 F9 00          163 		sta0	.Buf1
0119 20 00 00       164 		call	.ClosEndPS
011C 20 04 14       165 		call	.Addnegtive
011F 20 00 00       166 		call	.ClosEndPS
0122 20 00 00       167 		call	.CkRightC
0125 02 00 21       168 		br	.NextDp
+                   169 ;-------------------------------------------
0128                170 .DOmemSto:
+                   171 		
0128 F5 00          172 		lda0	.INDP
012A A7 00          173 		cmpe	#0h
012C 06 01 41       174 		brz	1$				
012F 20 02 49       175 		call	.GetPari		
0132 F5 00          176 		lda0	.AfterPari
0134 A7 01          177 		cmpe	#01h
0136 06 03 38       178 		brz	.MemAddMulCls
0139 A7 04          179 		cmpe	#04h
013B 06 03 38       180 		brz	.MemAddMulCls
013E 02 01 50       181 		br	.Sto2PS
+                   182 1$:		
0141 F5 00          183 		lda0	.DataBuf
0143 F9 00          184 		sta0	.Buf3
0145 F3 26          185 		lda	#26h
0147 F9 00          186 		sta0	.DataBuf			 
0149 20 00 00       187 		call	.StoStack
014C F5 00          188 		lda0	.Buf3
014E F9 00          189 		sta0	.DataBuf	
0150                190 .Sto2PS:
0150 20 03 99       191 		call	.NotSign	;.PosFixSto
0153 02 00 21       192 		br	.NextDp	
+                   193 ;-------------------------------------------		
0156                194 .DOnum:
0156 F5 00          195 		lda0	.INDP
0158 A7 00          196 		cmpe	#0h
015A 06 02 1F       197 		brz	.AddBase
015D 20 02 49       198 		call	.GetPari		
0160 F5 00          199 		lda0	.AfterPari
0162 A7 04          200 		cmpe	#04h
0164 06 01 50       201 		brz	.Sto2PS	
0167 A7 0F          202 		cmpe	#0fh
0169 06 01 50       203 		brz	.Sto2PS		
016C 02 02 1F       204 		br 	.AddBase				
+                   205 ;-------------------------------------------
016F                206 .DOaddec:
016F F5 00          207 		lda0	.INDP
0171 A7 00          208 		cmpe	#0h
0173 06 02 63       209 		brz	.Signal	
+                   210 		
0176 20 02 49       211 		call	.GetPari
0179 F5 00          212 		lda0	.Buf1
017B A7 B2          213 		cmpe	#.LC
017D 06 01 91       214 		brz	1$
0180 A7 B3          215 		cmpe	#.RC
0182 06 01 94       216 		brz	2$	;.PushStackCls		
0185 F5 00          217 		lda0	.AfterPari
0187 A7 01          218 		cmpe	#01h
0189 06 01 94       219 		brz	2$	;.PushStackCls
018C A7 04          220 		cmpe	#04h
018E 06 01 94       221 		brz	2$	;.PushStackCls			
+                   222 1$:		
0191 02 02 63       223 		br	.Signal		;.PushStackCls	
+                   224 2$:
0194 20 04 14       225 		call	.Addnegtive
0197 02 02 76       226 		br	.PushStackCls	
+                   227 ;-------------------------------------------
019A                228 .DOmuldiv:
019A 20 04 14       229 		call	.Addnegtive
019D 02 02 76       230 		br	.PushStackCls
+                   231 ;-------------------------------------------
01A0                232 .TransCode:
01A0 F5 00          233 		lda0	.INDP
01A2 A7 00          234 		cmpe	#0h
01A4 06 02 79       235 		brz	.PushStack 
01A7 F5 00          236 		lda0	.Buf1
01A9 A7 B2          237 		cmpe	#.LC
01AB 06 02 79       238 		brz	.PushStack
01AE 20 02 49       239 		call	.GetPari
01B1 F5 00          240 		lda0	.AfterPari
01B3 A7 01          241 		cmpe	#01h
01B5 06 03 0C       242 		brz	.AddMulCls
01B8 A7 04          243 		cmpe	#04h
01BA 06 03 0C       244 		brz	.AddMulCls
01BD 02 02 79       245 		br	.PushStack
+                   246 		
+                   247 ;-------------------------------------------		 
01C0                248 .DO2Operand:
01C0 20 02 49       249 		call	.GetPari
01C3 F5 00          250 		lda0	.AfterPari
01C5 A7 00          251 		cmpe	#0h
01C7 06 02 79       252 		brz	.PushStack
01CA A7 01          253 		cmpe	#01h
01CC 06 02 76       254 		brz	.PushStackCls 
01CF A7 04          255 		cmpe	#04h
01D1 06 02 76       256 		brz	.PushStackCls 
01D4 02 00 21       257 		br	.NextDp	
+                   258 ;-------------------------------------------		
01D7                259 .DONotNeg:
01D7 F5 00          260 		lda0	.INDP
01D9 A7 00          261 		cmpe	#0h
01DB 06 02 83       262 		brz	.TOStack
01DE 20 02 49       263 		call	.GetPari
01E1 F5 00          264 		lda0	.Buf1
01E3 A7 B2          265 		cmpe	#.LC
01E5 06 02 83       266 		brz	.TOStack
01E8 A7 B3          267 		cmpe	#.RC
01EA 06 03 0F       268 		brz	.AddMul 
01ED F5 00          269 		lda0	.AfterPari
01EF A7 01          270 		cmpe	#01h
01F1 06 03 0C       271 		brz	.AddMulCls

⌨️ 快捷键说明

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