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

📄 cnvint.s

📁 sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu
💻 S
字号:
;; Convertion routine of 24 bits integer 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: cnvint.S 3711 2005-03-31 16:25:17Z vrokas $;	radix dec	list	nolistPOSTINC0	equ	0xfeePOSTDEC1	equ	0xfe5PREINC1	equ	0xfe4STATUS	equ	0xfd8	global	_convert_int.registers	udata_ovr	0x000r0x00	res	1r0x01	res	1r0x02	res	1r0x03	res	1d0x00	res	1d0x01	res	1d0x02	res	1d0x03	res	1d0x04	res	1d0x05	res	1d0x06	res	1d0x07	res	1d0x08	res	1d0x09	res	1digit_count	res	1S__convert_int	code_convert_int:	movff	r0x00, POSTDEC1	movff	r0x01, POSTDEC1	movff	r0x02, POSTDEC1	movff	r0x03, POSTDEC1	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	digit_count, POSTDEC1; adding digit 0	movlw	0	btfsc	r0x00, 0		; bit 0	addlw	1	btfsc	r0x00, 1		; bit 1	addlw	2	btfsc	r0x00, 2		; bit 2	addlw	4	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	4	btfsc	r0x00, 7		; bit 7	addlw	8	btfsc	r0x01, 0		; bit 8	addlw	6	btfsc	r0x01, 1		; bit 9	addlw	2	btfsc	r0x01, 2		; bit 10	addlw	4	btfsc	r0x01, 3		; bit 11	addlw	8	btfsc	r0x01, 4		; bit 12	addlw	6	btfsc	r0x01, 5		; bit 13	addlw	2	btfsc	r0x01, 6		; bit 14	addlw	4	btfsc	r0x01, 7		; bit 15	addlw	8	btfsc	r0x02, 0		; bit 16	addlw	6	btfsc	r0x02, 1		; bit 17	addlw	2	btfsc	r0x02, 2		; bit 18	addlw	4	btfsc	r0x02, 3		; bit 19	addlw	8	btfsc	r0x02, 4		; bit 20	addlw	6	btfsc	r0x02, 5		; bit 21	addlw	2	btfsc	r0x02, 6		; bit 22	addlw	4	btfsc	r0x02, 7		; bit 23	addlw	8	clrf	d0x01@1:	addlw	-10	bnc	@2	incf	d0x01, f	bra	@1@2:	addlw	10	movwf	d0x00; adding digit 1	movf	d0x01, w	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	2	btfsc	r0x01, 0		; bit 8	addlw	5	btfsc	r0x01, 1		; bit 9	addlw	1	btfsc	r0x01, 2		; bit 10	addlw	2	btfsc	r0x01, 3		; bit 11	addlw	4	btfsc	r0x01, 4		; bit 12	addlw	9	btfsc	r0x01, 5		; bit 13	addlw	9	btfsc	r0x01, 6		; bit 14	addlw	8	btfsc	r0x01, 7		; bit 15	addlw	6	btfsc	r0x02, 0		; bit 16	addlw	3	btfsc	r0x02, 1		; bit 17	addlw	7	btfsc	r0x02, 2		; bit 18	addlw	4	btfsc	r0x02, 3		; bit 19	addlw	8	btfsc	r0x02, 4		; bit 20	addlw	7	btfsc	r0x02, 5		; bit 21	addlw	5	clrf	d0x02@3:	addlw	-10	bnc	@4	incf	d0x02, f	bra	@3@4:	addlw	10	movwf	d0x01; adding digit 2	movf	d0x02, w	btfsc	r0x00, 7		; bit 7	addlw	1	btfsc	r0x01, 0		; bit 8	addlw	2	btfsc	r0x01, 1		; bit 9	addlw	5	btfsc	r0x01, 5		; bit 13	addlw	1	btfsc	r0x01, 6		; bit 14	addlw	3	btfsc	r0x01, 7		; bit 15	addlw	7	btfsc	r0x02, 0		; bit 16	addlw	5	btfsc	r0x02, 2		; bit 18	addlw	1	btfsc	r0x02, 3		; bit 19	addlw	2	btfsc	r0x02, 4		; bit 20	addlw	5	btfsc	r0x02, 5		; bit 21	addlw	1	btfsc	r0x02, 6		; bit 22	addlw	3	btfsc	r0x02, 7		; bit 23	addlw	6	clrf	d0x03@5:	addlw	-10	bnc	@6	incf	d0x03, f	bra	@5@6:	addlw	10	movwf	d0x02; adding digit 3	movf	d0x03, w	btfsc	r0x01, 2		; bit 10	addlw	1	btfsc	r0x01, 3		; bit 11	addlw	2	btfsc	r0x01, 4		; bit 12	addlw	4	btfsc	r0x01, 5		; bit 13	addlw	8	btfsc	r0x01, 6		; bit 14	addlw	6	btfsc	r0x01, 7		; bit 15	addlw	2	btfsc	r0x02, 0		; bit 16	addlw	5	btfsc	r0x02, 1		; bit 17	addlw	1	btfsc	r0x02, 2		; bit 18	addlw	2	btfsc	r0x02, 3		; bit 19	addlw	4	btfsc	r0x02, 4		; bit 20	addlw	8	btfsc	r0x02, 5		; bit 21	addlw	7	btfsc	r0x02, 6		; bit 22	addlw	4	btfsc	r0x02, 7		; bit 23	addlw	8	clrf	d0x04@7:	addlw	-10	bnc	@8	incf	d0x04, f	bra	@7@8:	addlw	10	movwf	d0x03; adding digit 4	movf	d0x04, w	btfsc	r0x01, 6		; bit 14	addlw	1	btfsc	r0x01, 7		; bit 15	addlw	3	btfsc	r0x02, 0		; bit 16	addlw	6	btfsc	r0x02, 1		; bit 17	addlw	3	btfsc	r0x02, 2		; bit 18	addlw	6	btfsc	r0x02, 3		; bit 19	addlw	2	btfsc	r0x02, 4		; bit 20	addlw	4	btfsc	r0x02, 5		; bit 21	addlw	9	btfsc	r0x02, 6		; bit 22	addlw	9	btfsc	r0x02, 7		; bit 23	addlw	8	clrf	d0x05@9:	addlw	-10	bnc	@10	incf	d0x05, f	bra	@9@10:	addlw	10	movwf	d0x04; adding digit 5	movf	d0x05, w	btfsc	r0x02, 1		; bit 17	addlw	1	btfsc	r0x02, 2		; bit 18	addlw	2	btfsc	r0x02, 3		; bit 19	addlw	5	btfsc	r0x02, 6		; bit 22	addlw	1	btfsc	r0x02, 7		; bit 23	addlw	3	clrf	d0x06@11:	addlw	-10	bnc	@12	incf	d0x06, f	bra	@11@12:	addlw	10	movwf	d0x05; adding digit 6	movf	d0x06, w	btfsc	r0x02, 4		; bit 20	addlw	1	btfsc	r0x02, 5		; bit 21	addlw	2	btfsc	r0x02, 6		; bit 22	addlw	4	btfsc	r0x02, 7		; bit 23	addlw	8	clrf	d0x07@13:	addlw	-10	bnc	@14	incf	d0x07, f	bra	@13@14:	addlw	10	movwf	d0x06; adding digit 7	movf	d0x07, w	clrf	digit_count; finalization	bnz	@15	movf	d0x06, w	bnz	@16	movf	d0x05, w	bnz	@17	movf	d0x04, w	bnz	@18	movf	d0x03, w	bnz	@19	movf	d0x02, w	bnz	@20	movf	d0x01, w	bnz	@21	movf	d0x00, w	bra	@22@15:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	d0x06, w@16:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	d0x05, w@17:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	d0x04, w@18:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	d0x03, w@19:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	d0x02, w@20:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	d0x01, w@21:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	d0x00, w@22:	incf	digit_count, f	addlw	48	movwf	POSTINC0	movf	digit_count, w	movff	PREINC1, digit_count	movff	PREINC1, d0x09	movff	PREINC1, d0x08	movff	PREINC1, d0x07	movff	PREINC1, d0x06	movff	PREINC1, d0x05	movff	PREINC1, d0x04	movff	PREINC1, d0x03	movff	PREINC1, d0x02	movff	PREINC1, d0x01	movff	PREINC1, d0x00	movff	PREINC1, r0x03	movff	PREINC1, r0x02	movff	PREINC1, r0x01	movff	PREINC1, r0x00	return	end; Converstion table;;00	000000000000000000000001	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 ;01	000000000000000000000002	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 ;02	000000000000000000000004	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 ;03	000000000000000000000008	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 ;04	000000000000000000000016	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 6 ;05	000000000000000000000032	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 ;06	000000000000000000000064	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 4 ;07	000000000000000000000128	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 8 ;08	000000000000000000000256	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 5 6 ;09	000000000000000000000512	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 2 ;10	000000000000000000001024	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 4 ;11	000000000000000000002048	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 4 8 ;12	000000000000000000004096	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 9 6 ;13	000000000000000000008192	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 9 2 ;14	000000000000000000016384	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 6 3 8 4 ;15	000000000000000000032768	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 7 6 8 ;16	000000000000000000065536	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 5 5 3 6 ;17	000000000000000000131072	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 0 7 2 ;18	000000000000000000262144	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 6 2 1 4 4 ;19	000000000000000000524288	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 2 4 2 8 8 ;20	000000000000000001048576	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 4 8 5 7 6 ;21	000000000000000002097152	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 9 7 1 5 2 ;22	000000000000000004194304	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 9 4 3 0 4 ;23	000000000000000008388608	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 3 8 8 6 0 8 

⌨️ 快捷键说明

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