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

📄 cnvfrac.s

📁 sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu
💻 S
📖 第 1 页 / 共 2 页
字号:
;; Convertion routine of 24 bits floating point to ASCII;; written by Vangelis Rokas <vrokas AT otenet.gr>, 2004;;; This program is free software; you can redistribute it and/or; modify it under the terms of the GNU Library General Public License; as published by the Free Software Foundation; either version 2; of the License, or (at your option) any later version.;; This library is distributed in the hope that it will be useful,; but WITHOUT ANY WARRANTY; without even the implied warranty of; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the; GNU General Public License for more details.;; You should have received a copy of the GNU General Public License; along with this program; if not, write to the Free Software; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.;; $Id: cnvfrac.S 3711 2005-03-31 16:25:17Z vrokas $;	radix dec	list	nolistWREG	equ	0xfe8POSTINC0	equ	0xfeePOSTDEC1	equ	0xfe5PREINC1	equ	0xfe4STATUS	equ	0xfd8	global	_convert_frac.registers	udata_ovr	0x000r0x00	res	1r0x01	res	1r0x02	res	1r0x03	res	1round_digit	res	1d0x00	res	1d0x01	res	1d0x02	res	1d0x03	res	1d0x04	res	1d0x05	res	1d0x06	res	1d0x07	res	1d0x08	res	1d0x09	res	1d0x10	res	1d0x11	res	1d0x12	res	1d0x13	res	1d0x14	res	1d0x15	res	1d0x16	res	1d0x17	res	1d0x18	res	1d0x19	res	1d0x20	res	1d0x21	res	1d0x22	res	1d0x23	res	1d0x24	res	1S__convert_frac	code_convert_frac:	movff	d0x00, POSTDEC1	movff	d0x01, POSTDEC1	movff	d0x02, POSTDEC1	movff	d0x03, POSTDEC1	movff	d0x04, POSTDEC1	movff	d0x05, POSTDEC1	movff	d0x06, POSTDEC1	movff	d0x07, POSTDEC1	movff	d0x08, POSTDEC1	movff	d0x09, POSTDEC1	movff	d0x10, POSTDEC1	movff	d0x11, POSTDEC1	movff	d0x12, POSTDEC1	movff	d0x13, POSTDEC1	movff	d0x14, POSTDEC1	movff	d0x15, POSTDEC1	movff	d0x16, POSTDEC1	movff	d0x17, POSTDEC1	movff	d0x18, POSTDEC1	movff	d0x19, POSTDEC1	movff	d0x20, POSTDEC1	movff	d0x21, POSTDEC1	movff	d0x22, POSTDEC1	movff	d0x23, POSTDEC1	movff	d0x24, POSTDEC1; adding digit 0;	movff	0xf7f, 0xfe8	movlw	0	btfsc	r0x00, 0		; bit 0	addlw	5	clrf	d0x01@1:	addlw	-10	bnc	@2	incf	d0x01, f	bra	@1@2:	addlw	10	movwf	d0x00	decfsz	round_digit, f	bra	@3	addlw	251	bnc	@3	incf	d0x01, f@3:; adding digit 1	movf	d0x01, w	btfsc	r0x00, 0		; bit 0	addlw	2	btfsc	r0x00, 1		; bit 1	addlw	5	clrf	d0x02@4:	addlw	-10	bnc	@5	incf	d0x02, f	bra	@4@5:	addlw	10	movwf	d0x01	decfsz	round_digit, f	bra	@6	addlw	251	bnc	@6	incf	d0x02, f@6:; adding digit 2	movf	d0x02, w	btfsc	r0x00, 0		; bit 0	addlw	6	btfsc	r0x00, 1		; bit 1	addlw	2	btfsc	r0x00, 2		; bit 2	addlw	5	clrf	d0x03@7:	addlw	-10	bnc	@8	incf	d0x03, f	bra	@7@8:	addlw	10	movwf	d0x02	decfsz	round_digit, f	bra	@9	addlw	251	bnc	@9	incf	d0x03, f@9:; adding digit 3	movf	d0x03, w	btfsc	r0x00, 1		; bit 1	addlw	1	btfsc	r0x00, 2		; bit 2	addlw	2	btfsc	r0x00, 3		; bit 3	addlw	5	clrf	d0x04@10:	addlw	-10	bnc	@11	incf	d0x04, f	bra	@10@11:	addlw	10	movwf	d0x03	decfsz	round_digit, f	bra	@12	addlw	251	bnc	@12	incf	d0x04, f@12:; adding digit 4	movf	d0x04, w	btfsc	r0x00, 0		; bit 0	addlw	9	btfsc	r0x00, 1		; bit 1	addlw	8	btfsc	r0x00, 2		; bit 2	addlw	6	btfsc	r0x00, 3		; bit 3	addlw	2	btfsc	r0x00, 4		; bit 4	addlw	5	clrf	d0x05@13:	addlw	-10	bnc	@14	incf	d0x05, f	bra	@13@14:	addlw	10	movwf	d0x04	decfsz	round_digit, f	bra	@15	addlw	251	bnc	@15	incf	d0x05, f@15:; adding digit 5	movf	d0x05, w	btfsc	r0x00, 0		; bit 0	addlw	3	btfsc	r0x00, 1		; bit 1	addlw	7	btfsc	r0x00, 2		; bit 2	addlw	5	btfsc	r0x00, 3		; bit 3	addlw	1	btfsc	r0x00, 4		; bit 4	addlw	2	btfsc	r0x00, 5		; bit 5	addlw	5	clrf	d0x06@16:	addlw	-10	bnc	@17	incf	d0x06, f	bra	@16@17:	addlw	10	movwf	d0x05	decfsz	round_digit, f	bra	@18	addlw	251	bnc	@18	incf	d0x06, f@18:; adding digit 6	movf	d0x06, w	btfsc	r0x00, 0		; bit 0	addlw	5	btfsc	r0x00, 2		; bit 2	addlw	1	btfsc	r0x00, 3		; bit 3	addlw	3	btfsc	r0x00, 4		; bit 4	addlw	6	btfsc	r0x00, 5		; bit 5	addlw	2	btfsc	r0x00, 6		; bit 6	addlw	5	clrf	d0x07@19:	addlw	-10	bnc	@20	incf	d0x07, f	bra	@19@20:	addlw	10	movwf	d0x06	decfsz	round_digit, f	bra	@21	addlw	251	bnc	@21	incf	d0x07, f@21:; adding digit 7	movf	d0x07, w	btfsc	r0x00, 0		; bit 0	addlw	7	btfsc	r0x00, 1		; bit 1	addlw	5	btfsc	r0x00, 5		; bit 5	addlw	1	btfsc	r0x00, 6		; bit 6	addlw	2	btfsc	r0x00, 7		; bit 7	addlw	5	clrf	d0x08@22:	addlw	-10	bnc	@23	incf	d0x08, f	bra	@22@23:	addlw	10	movwf	d0x07	decfsz	round_digit, f	bra	@24	addlw	251	bnc	@24	incf	d0x08, f@24:; adding digit 8	movf	d0x08, w	btfsc	r0x00, 0		; bit 0	addlw	7	btfsc	r0x00, 1		; bit 1	addlw	5	btfsc	r0x00, 2		; bit 2	addlw	1	btfsc	r0x00, 3		; bit 3	addlw	2	btfsc	r0x00, 4		; bit 4	addlw	4	btfsc	r0x00, 5		; bit 5	addlw	8	btfsc	r0x00, 6		; bit 6	addlw	6	btfsc	r0x00, 7		; bit 7	addlw	2	btfsc	r0x01, 0		; bit 8	addlw	5	clrf	d0x09@25:	addlw	-10	bnc	@26	incf	d0x09, f	bra	@25@26:	addlw	10	movwf	d0x08	decfsz	round_digit, f	bra	@27	addlw	251	bnc	@27	incf	d0x09, f@27:; adding digit 9	movf	d0x09, w	btfsc	r0x00, 0		; bit 0	addlw	4	btfsc	r0x00, 1		; bit 1	addlw	9	btfsc	r0x00, 2		; bit 2	addlw	9	btfsc	r0x00, 3		; bit 3	addlw	8	btfsc	r0x00, 4		; bit 4	addlw	6	btfsc	r0x00, 5		; bit 5	addlw	2	btfsc	r0x00, 6		; bit 6	addlw	5	btfsc	r0x00, 7		; bit 7	addlw	1	btfsc	r0x01, 0		; bit 8	addlw	2	btfsc	r0x01, 1		; bit 9	addlw	5	clrf	d0x10@28:	addlw	-10	bnc	@29	incf	d0x10, f	bra	@28@29:	addlw	10	movwf	d0x09	decfsz	round_digit, f	bra	@30	addlw	251	bnc	@30	incf	d0x10, f@30:; adding digit 10	movf	d0x10, w	btfsc	r0x00, 0		; bit 0	addlw	4	btfsc	r0x00, 1		; bit 1	addlw	8	btfsc	r0x00, 2		; bit 2	addlw	7	btfsc	r0x00, 3		; bit 3	addlw	5	btfsc	r0x00, 4		; bit 4	addlw	1	btfsc	r0x00, 5		; bit 5	addlw	3	btfsc	r0x00, 6		; bit 6	addlw	6	btfsc	r0x00, 7		; bit 7	addlw	3	btfsc	r0x01, 0		; bit 8	addlw	6	btfsc	r0x01, 1		; bit 9	addlw	2	btfsc	r0x01, 2		; bit 10	addlw	5	clrf	d0x11@31:	addlw	-10	bnc	@32	incf	d0x11, f	bra	@31@32:	addlw	10	movwf	d0x10	decfsz	round_digit, f	bra	@33	addlw	251	bnc	@33	incf	d0x11, f@33:; adding digit 11	movf	d0x11, w	btfsc	r0x00, 0		; bit 0	addlw	6	btfsc	r0x00, 1		; bit 1	addlw	2	btfsc	r0x00, 2		; bit 2	addlw	5	btfsc	r0x00, 3		; bit 3	addlw	1	btfsc	r0x00, 4		; bit 4	addlw	3	btfsc	r0x00, 5		; bit 5	addlw	6	btfsc	r0x00, 6		; bit 6	addlw	2	btfsc	r0x00, 7		; bit 7	addlw	5	btfsc	r0x01, 1		; bit 9	addlw	1	btfsc	r0x01, 2		; bit 10	addlw	2	btfsc	r0x01, 3		; bit 11	addlw	5	clrf	d0x12@34:	addlw	-10	bnc	@35	incf	d0x12, f	bra	@34@35:	addlw	10	movwf	d0x11	decfsz	round_digit, f	bra	@36	addlw	251	bnc	@36	incf	d0x12, f@36:; adding digit 12	movf	d0x12, w	btfsc	r0x00, 0		; bit 0	addlw	4	btfsc	r0x00, 1		; bit 1	addlw	9	btfsc	r0x00, 2		; bit 2	addlw	8	btfsc	r0x00, 3		; bit 3	addlw	7	btfsc	r0x00, 4		; bit 4	addlw	4	btfsc	r0x00, 5		; bit 5	addlw	8	btfsc	r0x00, 6		; bit 6	addlw	7	btfsc	r0x00, 7		; bit 7	addlw	4	btfsc	r0x01, 0		; bit 8	addlw	9	btfsc	r0x01, 1		; bit 9	addlw	8	btfsc	r0x01, 2		; bit 10	addlw	6	btfsc	r0x01, 3		; bit 11	addlw	2	btfsc	r0x01, 4		; bit 12	addlw	5	clrf	d0x13@37:	addlw	-10	bnc	@38	incf	d0x13, f	bra	@37@38:	addlw	10	movwf	d0x12	decfsz	round_digit, f	bra	@39	addlw	251	bnc	@39	incf	d0x13, f@39:; adding digit 13	movf	d0x13, w	btfsc	r0x00, 2		; bit 2	addlw	1	btfsc	r0x00, 3		; bit 3	addlw	3	btfsc	r0x00, 4		; bit 4	addlw	7	btfsc	r0x00, 5		; bit 5	addlw	4	btfsc	r0x00, 6		; bit 6	addlw	9	btfsc	r0x00, 7		; bit 7	addlw	9	btfsc	r0x01, 0		; bit 8	addlw	8	btfsc	r0x01, 1		; bit 9	addlw	7	btfsc	r0x01, 2		; bit 10	addlw	5	btfsc	r0x01, 3		; bit 11	addlw	1	btfsc	r0x01, 4		; bit 12	addlw	2	btfsc	r0x01, 5		; bit 13	addlw	5	clrf	d0x14@40:	addlw	-10	bnc	@41	incf	d0x14, f	bra	@40@41:	addlw	10	movwf	d0x13	decfsz	round_digit, f	bra	@42	addlw	251	bnc	@42	incf	d0x14, f@42:

⌨️ 快捷键说明

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