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

📄 stdmacro.inc

📁 use Holtek HT83F60 flash voice MCU edit,function:Play PCM12 Voice ,sentence ,VOL control,Stop voice
💻 INC
字号:
;=============================
;JBS   R_RAM,D_BIT,L_LABLE
;JBC   R_RAM,D_BIT,L_LABLE
;SEC
;CLC
;BEQ   L_LABLE
;BNE   L_LABLE
;BCS   L_LABLE
;BCC   L_LABLE
;BLE   L_LABLE
;PUSH          (MUST DEFINE RAM: ACC_BK,STATU_BK,,MP1_BK,BP_BK,TBLP_BK,TBHP_BK
;POP           (MUST DEFINE RAM: ACC_BK,STATU_BK,,MP1_BK,BP_BK,TBLP_BK,TBHP_BK
;XMOV  MEM1,MEM2
;XMOVB MEMB1,MEMB2
;SEZ
;CLZ
;JE    LABLE
;JLG   LABLE
;JLE   LABLE
;JGE   LABLE
;_SNZ  MEM
;_SDNZ MEM
;_SINZ MEM                
;jz    lable  
;jnz   lable  





#DEFINE D_C 0
#DEFINE D_Z 2
#DEFINE R_STATUS [0AH]

JBS	MACRO	R_RAM,D_BIT,L_LABLE
	SZ	R_RAM.D_BIT
	JMP	L_LABLE
ENDM

;//------------------------------------
JBC	MACRO	R_RAM,D_BIT,L_LABLE
	SNZ	R_RAM.D_BIT
	JMP	L_LABLE
ENDM

;//------------------------------------
SEC	MACRO
	SET	R_STATUS.D_C
ENDM

;//------------------------------------
CLC	MACRO
	CLR	R_STATUS.D_C
ENDM

;//------------------------------------
SEZ		MACRO
	CLR	R_STATUS.2
ENDM
;//------------------------------------
CLZ		MACRO
	CLR	R_STATUS.2
ENDM

;//------------------------------------
BEQ	MACRO	L_LABLE
	SZ	R_STATUS.D_Z
	JMP	L_LABLE
ENDM

;//------------------------------------
BNE	MACRO	L_LABLE
	SNZ	R_STATUS.D_Z
	JMP	L_LABLE
ENDM

;//------------------------------------
BCS	MACRO	L_LABLE
	SZ	R_STATUS.D_C
	JMP	L_LABLE
ENDM

;//------------------------------------
BCC	MACRO	L_LABLE
	SNZ	R_STATUS.D_C
	JMP	L_LABLE
ENDM

;//------------------------------------
;if <= then goto Address
BLE	MACRO	L_LABLE
	SZ	R_STATUS.D_Z
	SNZ	R_STATUS.D_C
	JMP	L_LABLE
ENDM
;//------------------------------------
PUSH    MACRO
      MOV       ACC_BK,A      ;ACC
      MOV       A,[0AH]
      MOV       STATUS_BK,A   ;STATU
      MOV       A,MP1
      MOV       MP1_BK,A      ;MP1
      MOV       A,BP
      MOV       BP_BK,A       ;BP
      MOV       A,TBLP
      MOV       TBLP_BK,A     ;TBLP
      MOV       A,TBHP
      MOV       TBHP_BK,A     ;TBHP
      ENDM
;//------------------------------------      
POP     MACRO
      MOV       A,TBLP_BK    ;TBLP
      MOV       TBLP,A
      MOV       A,TBHP_BK    ;TBHP
      MOV       TBHP,A
      MOV       A,MP1_BK     ;MP1
      MOV       MP1,A
      MOV       A,BP_BK      ;BP
      MOV       BP,A
      MOV       A,STATUS_BK  ;STATU
      MOV       [0AH],A
      MOV       A,ACC_BK     ;ACC
      ENDM
;//------------------------------------
XMOV  MACRO     MEM1,MEM2
		MOV A,MEM2
		MOV MEM1,A
ENDM
;//------------------------------------
XMOVB MACRO     MEMB1,MEMB2
                CLR MEMB1
                SZ  MEMB2
                SET MEMB2
ENDM

;//------------------------------------
;IF A==[M] LABLE
JE     MACRO  LABLE
       SZ  R_STATUS.2
       JMP LABLE
       ENDM
;//------------------------------------
;IF A<>[M] LABLE
JLG     MACRO  LABLE
        SNZ R_STATUS.2
        JMP LABLE
        ENDM       
;//------------------------------------        
;IF A<=[M] LABLE       
JLE    MACRO LABLE
       SNZ  R_STATUS.2
       SNZ  R_STATUS.0       
       JMP LABLE 
       ENDM
;//------------------------------------       
;IF A>=[M] LABLE
JGE    MACRO LABLE
       SNZ R_STATUS.2
       SZ R_STATUS.0
       JMP LABLE
       ENDM 

;//------------------------------------       
_SNZ	MACRO	mem   
	sz	mem   
	jmp	$+2   
ENDM                  
;//------------------------------------       
_SDNZ	MACRO	mem   
	sdz	mem   
	jmp	$+2   
ENDM                  
;//------------------------------------       
_SINZ	MACRO	mem   
	siz	mem   
	jmp	$+2   
ENDM
;//------------------------------------       
 jz		macro lable  
 	sz	Rstatus.2    
 	jmp lable            
 endm                        
;//------------------------------------                                    
 jnz		macro lable  
 	snz Rstatus.2        
 	jmp lable            
 endm                        
 
;//===================================================

;
;	A - B
;				C			Z
;	A < B		0			0
;	A = B		1			1
;	A > B		1			1
;
;	A - B = A + B's 2's complement 
;

SKP_Z 	MACRO 
		SNZ	Z
    	ENDM

SKP_NZ macro
		SZ	Z
		endm

SKP_C	macro
		SNZ	C
		endm

SKP_NC	macro
		SZ	C
		endm

jmp_Z	macro	where
		SKP_NZ
		jmp		where
		endm

jmp_NZ	macro	where
		SKP_Z
		jmp		where
		endm

jmp_E	macro	where		; the same as JMP_Z
		skp_NZ
		jmp		where
		endm

jmp_NE	macro	where		; teh same as JMP_NZ
		skp_Z
		jmp		where
		endm

jmp_NC	macro	where
		SKP_C
		jmp		where
		endm

jmp_C	macro	where
		SKP_NC
		jmp		where
		endm

skp_GE	macro				; skip if greater and equal
		skp_C
		endm

skp_L	macro				; skip if smaller 
		skp_NC				
		endm

jmp_L	macro	where		; jmp if less 	
		skp_GE
		jmp		where
		endm

jmp_GE	macro	where		; jmp if greater and equal
		skp_L
		jmp		where
		endm

Save_ACC_STS	macro
		mov		tempAcc,A
		mov		A,Status
		mov		tempSTS,A
		endm

Restore_Acc_Sts	macro
		mov		A,tempSTS
		mov		STatus,A
		mov		A,tempAcc
		endm

Define_Acc_Sts_storage	macro
tempAcc		db	?
tempSTS		db	?
		endm

  

Xmov1	macro	Destination, Source
		mov		tempAcc,A
		mov		A,source
		mov		Destination, A
		mov		A,tempAcc
		endm

Load_A_With_B	macro	A,B
		xmov1	A,B
		endm
		
;//=====================================================		

⌨️ 快捷键说明

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