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

📄 fs_bcd.asm

📁 富晶的MCU仿真器软件
💻 ASM
字号:
;===============================================
; 24bits HexCode to BCDCode Transfer
;-------------------------------------------
;Input:
;		Paramaters: EAL|AX(EAL|AH|AL)
;Output:
;		Paramaters: EBX|BX(EBH|EBL|BH|BL)
;MAX Translation Range:
;		(0xFFFFFF)16 -->(16777215)10
;;Performance:
;	Cycle	 = 1438
; 	PM=39*2(bytes)		DM= 8(bytes)(Without W register)
;				    1.EAL,2.AX,3.EBX,4.BX,5.buffer
;-----------------------------------------------
;Edit:Gavannis		Time:2005/2/18		Version:0.1
;=====================================================================================
24Hex2BCD:  
	MOVLW	24
	MOVWF	buffer
	GOTO	BCDINI

 BCDINI:
	CLRF	EBH
	CLRF	EBL
	CLRF	BH
	CLRF	BL	
	CLRF	STATUS
 BCD_Lp:
	rlf	AL,1
	rlf	AH,1
	rlf	EAL,1
	rlf4b	BL
	decfsz	buffer,1
	goto	AdjDec
	return
 AdjDec:
	MOVLW	BL
	MOVWF	FSR0
	call	AdjBcd
	MOVLW	BH
	MOVWF	FSR0
	call	AdjBcd
	MOVLW	EBL
	MOVWF	FSR0
	call	AdjBcd
	MOVLW	EBH
	MOVWF	FSR0
	call	AdjBcd
	goto	BCD_Lp  
 AdjBcd:  
	movlw	03h
	addwf	IND0,0
	btfsc	WORK,3
	movwf	IND0
	movlw	30h
	addwf	IND0,0
	btfsc	WORK,7
	movwf	IND0
	return

;===============================================
; 8bits HexCode to BCDCode Transfer
;-------------------------------------------
;Input:
;		Paramaters: AL
;Output:
;		Paramaters: BX(BH|BL)
;MAX Translation Range:
;		(0xFF)16 -->(255)10
;;Performance:
;	Cycle	 = 241
; 	PM=26*2(bytes)		DM= 4(bytes)(Without W register)
;				    1.AL,2.BX,,3.buffer
;-----------------------------------------------
;Edit:Gavannis		Time:2005/2/18		Version:0.1
;=====================================================================================

8Hex2BCD:
	MOVLW	8
	MOVWF	buffer

	CLRF	BH
	CLRF	BL	
	CLRF	STATUS
 BCD_Lp8:
	rlf	AL,1
	rlf2b	BL
	decfsz	buffer,1
	goto	AdjDec8
	return
 AdjDec8:
	MOVLW	BL
	MOVWF	FSR0
	call	AdjBcd8
	MOVLW	BH
	MOVWF	FSR0
	call	AdjBcd8
	goto	BCD_Lp8 
 AdjBcd8:  
	movlw	03h
	addwf	IND0,0
	btfsc	WORK,3
	movwf	IND0
	movlw	30h
	addwf	IND0,0
	btfsc	WORK,7
	movwf	IND0
	return
	
;===============================================
; 8oct BCDCode to HexCode Transfer
;-------------------------------------------
;Input:
;		Paramaters: EBX|BX(EBH,EBL,BH,BL)
;Output:
;		Paramaters: EAX(EAL,AH,AL)
;MAX Translation Range:
;		(16777215)10 -->(FFFFFF)16
;;Performance:
;	Cycle	 = 1277
; 	PM=36*2(bytes)		DM= 8(bytes)(Without W register)
;				    1.EAL,2.AX,3.EBX,4.BX,5.buffer
;=====================================================================================

8Bcd2Hex:
	CLRF		EAH
	CLRF		EAL
	CLRF		AH
	CLRF		AL
	movlw		24
	movwf		buffer
 Hex_lp24:
	BCF		STATUS,C
	rrf4b		BL
	rrf		EAL,1
	rrf		AH,1
	rrf		AL,1
	decfsz		buffer,1
	goto		AdjOct24
	return
 AdjOct24:
	MOVLW		BL
	MOVWF		FSR0
	call		AdjHex24	;BL
	MOVLW		BH
	MOVWF		FSR0	
	call		AdjHex24	;BH
	MOVLW		EBL
	MOVWF		FSR0
	call		AdjHex24	;EBL
  	MOVLW		EBH
	MOVWF		FSR0
  	call		AdjHex24	;EBH
	goto		Hex_lp24
 AdjHex24:
	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 + -