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

📄 lib9821.asm

📁 富晶的MCU仿真器软件
💻 ASM
字号:
;===========================================
; lib3866.ASM	 		version 0.1
; user define procture
; Edit by gavannis.hsu		2005/01/03
;===========================================
;-------------------------------------------
; Global Variable 
;-------------------------------------------
; AL, AH, EAL, EAL
; BL, BH, EBL, EBL
; CL, CH, ECL, ECL
; DL, DH, EDL, EDL
; buffer 0~15
; counter0~2
;-------------------------------------------
; Rotated Work Register 
;-------------------------------------------
rlfWork4:
	rlf	work,1
	rlf	work,1
	rlf	work,1
	rlf	work,1
	return
	
rrfWork4:
	rrf	work,1
	rrf	work,1
	rrf	work,1
	rrf	work,1
	return	

rlfEAX:
	rlf4b	AL
	return

rlfEBX:
	rlf4b	BL
	return

rrfEAX:
	rrf4b	EAH
	return

rrfEBX:
	rrf4b	EBH
	return
	
rlfEBX4:
	call	rlfEBX
	call	rlfEBX
	call	rlfEBX
	call	rlfEBX
	return
;-------------------------------------------
; Clear EAX, EBX, ECX, EDX
;-------------------------------------------
ClearEAX:
	clrf	AL
	clrf	AH
	clrf	EAL
	clrf	EAH
	return
  
ClearEBX:
	clrf	BL
	clrf	BH
	clrf	EBL
	clrf	EBH
	return
  
ClearECX:
	clrf	CL
	clrf	CH
	clrf	ECL
	clrf	ECH
	return
  
ClearEDX:
	clrf	DL
	clrf	DH
	clrf	EDL
	clrf	EDH
	return

ClearEDCBAX:
	movlf	DL,FSR0
 clr16:
	movlw	16
	goto	clrcom
	
ClearEDXECX:
	movlf	DL,FSR0
	goto	clr8

ClearEBXEAX:
	movlf	BL,FSR0
 clr8:
	movlw	8
 clrcom:	
	movwf	counter0
 Clear_lp:
	clrf	IND0
	incf	FSR0,1
	decfsz	counter0,1
	goto	clear_lp
	return
	
clr_Mem:
	movlf	counter1,FSR0
	movlw	07fh
	goto	clrcom
;-------------------------------------------
; Delay function
;-------------------------------------------
_S_Delay:
	movwf	delay_bf	;RunTime=(3*counter2+1)*25/2us	
_S_DelayA:
	decfsz	delay_bf,1
	goto	_S_DelayA1
	return
_S_DelayA1:
	movlf	0FEh,adcnt
_S_DelayA2:
	decfsz	adcnt,1
	goto	_S_DelayA2
	goto	_S_DelayA

;CopyEDXEBX:
;	movff4		DL,BL
;	return
;CopyEAXEBX:
;	movff4		AL,BL
;	return
;CopyEBXEAX:
;	movff4		BL,AL
;	return

;-------------------------------------------
; HexCode to BCDCode Transfer
;	INPUT   :EAL,AH,AL
;	OUTPUT  :EBH,EBL,BH,BL
;-------------------------------------------
; Max Translation
;(FFFFFF)16 in EAX to(16777215)10 in EBX
; Run cycle : 1611
;-------------------------------------------
Hex2BCD:  
	call	ClearEBX
	movlf	24,counter1
	clrc
 BCD_Lp:
	rlf	AL,1   
	rlf	AH,1
	rlf	EAL,1
	rlf4b	BL
	decfsz	counter1,1
	goto	AdjDec
	return
 AdjDec:
	movlf	BL,FSR0
	call	AdjBcd
	movlf	BH,FSR0
	call	AdjBcd
	movlf	EBL,FSR0
	call	AdjBcd
	movlf	EBH,FSR0
	call	AdjBcd
	goto	BCD_Lp  
 AdjBcd:  
	movlw	03h
	addwf	00h,0
	btfsc	WORK,3
	movwf	00h
	movlw	30h
	addwf	00h,0
	btfsc	WORK,7
	movwf	00h
	return
;-------------------------------------------
; BCDCode to HexCode Transfer
;	INPUT   :EBH,EBL,BH,BL
;	OUTPUT  :EAL,AH,AL
;-------------------------------------------
; Max Translation		
;(16777215)10 in EBX to (FFFFFF)16 in EAX
; Run cycle : 1450
;-------------------------------------------
Bcd2Hex:
	call		ClearEAX
	movlf		24,counter1
 Hex_lp:
	clrc
	rrf4b		EBH
	rrf		EAL,1
	rrf		AH,1
	rrf		AL,1
	decfsz		counter1,1
	goto		AdjOct
	return
 AdjOct:
	movlf		BL,FSR0
	call		AdjHex
	movlf		BH,FSR0
	call		AdjHex
	movlf		EBL,FSR0
	call		AdjHex
  	movlf		EBH,FSR0
  	call		AdjHex
	goto		Hex_lp
 AdjHex:
	movlw		3
	btfsc		IND0,3
	subwf		IND0,1
	movlw		030h
	btfsc		IND0,7
	subwf		IND0,1
	return
;-------------------------------------------
; 俱计

⌨️ 快捷键说明

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