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

📄 basensyntax.asm

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASM
字号:
;/subrutine name : Basensyntax.asm
;/user bady      : HE
;/fast clock     : 4Mhz
;/slow clock     : 32768khz
;/programer      : Alton
		.area  Basensyntax(code,rel)
.Basensyntax::
		call	.InitBasenSyntax
.Bsyntax:		
		lda	#>.INDP
		sta	PP		 
		lda0	.INDP
		cmpe	.DataDP
		brz	.EnddataChk	
		lda	#02h
		sta	PP
		lda0	.INDP	
		sta	DP
		lda	i
		sta0	.DataBuf
		cmpe	#0b6h
		brnz	1$
		lda0	.DataDP
		cmpe	#01h
		brz	1$
		br	.Errorsyntax		
1$:		
		call	.CheckMem
		call	.Paricmp
		lda0	.INDP
		cmpe	#0h
		brz	.ChkHead
		lda0	.DataBuf
		cmpe	#0b2h
		brz	.ChkLC
		cmpe	#0b3h
		brz	.ChkRC
		lda0	.AfterPari
		cmpe	#01h
		brz	.ChkMem
		cmpe	#04h
		brz	.ChkNum
		cmpe	#07h
		brz	.ChkLogic
		cmpe	#08h
		brz	.ChkLogic
		cmpe	#09h
		brz	.ChkLogic
		cmpe	#0ch
		brz	.ChkAddDec
		cmpe	#0dh
		brz	.ChkMulDiv
		cmpe	#0eh
		brz	.ChkNotNeg
		cmpe	#0fh
		brz	.ChkTrnCode
.NextDP:
		lda0	.DataBuf
		sta0	.Buf1
		lda0	.INDP
		inca
		sta0	.INDP
		br	.Bsyntax		

				
;-------------------------------------------		
.ChkHead:
		lda0	.DataBuf
		cmpe    #0b2h
		brz	.HeadLC
		cmpe	#0b3h
		brz	.Errorsyntax	
		lda0	.AfterPari		
		cmpe	#07h
		brz	.Errorsyntax		
		cmpe	#08h
		brz	.Errorsyntax
		cmpe	#09h
		brz	.Errorsyntax
		cmpe	#0dh
		brz	.Errorsyntax
		br	.NextDP
.ChkLC:
		
		call	.GetPari
		lda0	.Buf1
		;cmpe	#0b3h		
		;brz	.Errorsyntax				
		lda0	.AfterPari
		cmpe	#0fh
		brz	.Errorsyntax
.HeadLC:		
		lda0	.LRcnt
		inca
		sta0	.LRcnt
		br	.NextDP	
.ChkRC:
		lda0	.LRcnt
		deca
		sta0	.LRcnt
		cmpe	#0ffh
		brz	.Errorsyntax
		call	.GetPari
		lda0	.Buf1
		cmpe	#0b2h		
		brz	.Errorsyntax				
		lda0	.AfterPari
		cmpe	#0h
		brz	.NextDP
		cmpe	#01h
		brz	.NextDP	
		cmpe	#04h
		brz	.NextDP	
		br	.Errorsyntax				
.ChkMem:	
		call	.GetPari		
		lda0	.Buf1
		cmpe	#0b3h
		brz	.Errorsyntax	
		lda0	.AfterPari
		cmpe	#0fh	
		brz	.Errorsyntax		
		br	.NextDP
.ChkNum:
		call	.GetPari		
		lda0	.Buf1		
		cmpe	#0b3h		;)A
		brz	.Errorsyntax
		lda0	.AfterPari
		cmpe	#01h		;A8
		brz	.Errorsyntax		
		br	.NextDP		
.ChkLogic:
		call	.GetPari		
		lda0	.Buf1
		cmpe	#0b2h		;(And		
		brz	.Errorsyntax		 
		lda0	.AfterPari
		cmpe	#0h		 
		brz	.NextDP	
		cmpe	#01h		;AndXor
		brz	.NextDP	
		cmpe	#04h		;AndOR
		brz	.NextDP					
		br 	.Errorsyntax
.ChkTrnCode:		
.ChkNotNeg:				
.ChkAddDec:
		call	.GetPari						
		lda0	.AfterPari
		cmpe	#0fh		;D-3
		brz	.Errorsyntax		 
		br 	.NextDP	
		
.ChkMulDiv:
		call	.GetPari
		lda0	.Buf1
		cmpe	#0b2h
		brz	.Errorsyntax		 						
		lda0	.AfterPari
		cmpe	#0h		 
		brz	.NextDP	
		cmpe	#01h		 
		brz	.NextDP	
		cmpe	#04h		 
		brz	.NextDP			 
		br 	.Errorsyntax
					
;-------------------------------------------		
.Errorsyntax:
		lda	#02h
		sta0	ErrorFlag
		lda0	.INDP		
		sta0	.SFDP
		br	.EndBsyntax	
.EnddataChk:
		lda0	.DataBuf
		cmpe	#0b2h
		brz	.Errorsyntax
		call	.GetPari
		lda0	.AfterPari
		cmpe	#0h
		brz	.EndBsyntax
		cmpe	#01h
		brz	.EndBsyntax
		cmpe	#04h
		brz	.EndBsyntax
		br 	.Errorsyntax
.EndBsyntax:		
		ret					
;-------------------------------------------		
.InitBasenSyntax:		
		lda	#0h					 
		sta0	.BeforePari		 
		sta0	.AfterPari
		sta0	ErrorFlag
		sta0	.LRcnt			 
		sta0	.INDP				 		 	
		ret 		

⌨️ 快捷键说明

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