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

📄 gps_a_c.lib

📁 使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发程序.供UART和AT指令编程者参考
💻 LIB
📖 第 1 页 / 共 5 页
字号:



; generated by Norcroft eCOG C Compiler V1.10 $BuildRevision$
; special options:  -g
;
	MODULE qqtemp_____dneg
	.CODE
	.LARGE
	; TARGET_MAX_STACK_OVERRUN = 8
;/*=============================================================================
;Cyan Technology Ltd
;eCOG C Library
;
;FILE __dneg.c - software implementation of fp double precision negate
;
;DESCRIPTION
;Negates a double precision number.
;
;MODIFICATION DETAILS
;01/NOV/2001     Karl Swepson      Taken from CCLs XAP2 Library.
;26/OCT/2004     Andy Cromarty     Improved legibility, removed all while(1) loops
;                                  and added assert statements for debugging
;=============================================================================*/
;
;/* Copyright (C) Codemist Ltd, 1988 */
;/* Copyright (C) Cambridge Consultants Ltd, 1995 */
;/* Copyright (C) Cyan Technology Ltd, 2001, 2004 */
;
;#define __dnegX
;#include "__lib.h"
;
;double __dneg(int32 bh, int32 bl)
;
$__dneg:
^qqtemp_____dneg.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dneg.c'.?23.1:
	st	AL,@(-2,Y)
	st	AH,@(-1,Y)
	st	XH,@(-4,Y)
	st	X,@(-3,Y)
	st	AL,@H'ffe5	; %r2 (__struct_result)
Lstab?0c:
;{
^qqtemp_____dneg.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dneg.c'.?24.1:
Lstab?1c:
;    dblrep a;
;    
;    return (i2dbl_(a, bh ^ 0x80000000, bl));
^qqtemp_____dneg.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dneg.c'.?27.1:
	ld	AL,@(0,Y)	; %r34 (bh)
	ld	AH,@(-1,Y)	; %r34 (bh)
	xor	AH,#-32768
	st	AL,@(-7,Y)	; a+1
	st	AH,@(-8,Y)	; a
; ^qqtemp_____dneg.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dneg.c'.?27.1:
	ld	AL,@(2,Y)	; %r36 (bl)
	ld	AH,@(1,Y)	; %r36 (bl)
	st	AL,@(-5,Y)	; a+3
	st	AH,@(-6,Y)	; a+2
	mov	AL,Y
	add	AL,#-8
	st	Y,@H'fffe
	ld	Y,@H'ffe5	; %r2 (__struct_result)
	st	AL,@H'ffe7	; %r3
	ld	X,@H'ffe7	; %r3
	ld	AH,@(3,X)
	st	AH,@(3,Y)
	ld	AH,@(2,X)
	st	AH,@(2,Y)
	ld	AH,@(1,X)
	st	AH,@(1,Y)
	ld	AH,@(0,X)
	st	AH,@(0,Y)
	ld	Y,@H'fffe
	ld	AH,#0
	st	AH,@H'fffe
	ld	XH,@(-4,Y)
	bra	@(-3,Y)
Lstab?2c:
;
^qqtemp_____dneg.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dneg.c'.?999999.1:
;}
;
;
;/* arch-tag: 69c95a3e-2792-4cf5-9ac0-754b9e2ff769
;   (do not change this comment) */
;
	; .export	$__dneg
;
	.stabs	"C:\\Program Files\\Cyan Technology\\CyanIDE\\C\\library\\__dneg.c",100,0,0,0
	.stabs	"int:t1=r1;-32768;32767;",128,0,0,0
	.stabs	"char:t2=r2;0;127;",128,0,0,0
	.stabs	"long int:t3=r1;-2147483648;2147483647;",128,0,0,0
	.stabs	"unsigned int:t4=r1;0;65535;",128,0,0,0
	.stabs	"unsigned long int:t5=r1;0;-1;",128,0,0,0
	.stabs	"short int:t6=r1;-32768;32767;",128,0,0,0
	.stabs	"unsigned short int:t7=r1;0;65535;",128,0,0,0
	.stabs	"signed char:t8=r1;-128;127;",128,0,0,0
	.stabs	"unsigned char:t9=r1;0;255;",128,0,0,0
	.stabs	"float:t10=r1;4;0;",128,0,0,0
	.stabs	"double:t11=r1;8;0;",128,0,0,0
	.stabs	"long double:t12=r1;8;0;",128,0,0,0
	.stabs	"void:t13=13",128,0,0,0
	.stabs	"C:\\Program Files\\Cyan Technology\\CyanIDE\\C\\include\\__lib.h",132,0,0,-1
	.stabs	"_va_list:t14=*1",128,0,0,0
	.stabs	"fp_number:t17=15=u8i:16=s8sxmhi:5,0,32;mlo:5,32,32;;,0,64;d:11,0,64;;",128,0,0,0
	.stabs	"dblrep:T18=u8d:11,0,64;ua:19=ar1;0;1;5,0,64;;",128,0,0,0
	.stabs	"dblrep:t20=18",128,0,0,0
	.stabs	"__remain:G5",32,0,0,0
	.stabs	"__rndnxt:G5",32,0,0,0
	.stabs	"BlockStruct:T21=s6flag:22,0,16;size:1,16,16;cdr:23=*21,32,16;;",128,0,0,0
	.stabs	" :T22=eBLKFREE:4660,BLKACTIVE:22136,;",128,0,0,0
	.stabs	"BlockStruct:t24=21",128,0,0,0
	.stabs	"__huge_v:G11",32,0,0,0
	.stabs	"__huge_f:G10",32,0,0,0
	.stabs	"__IODESC:t32=25=s6is_string:1,0,16;d:26=u4string:27=*2,0,32;output_fn:28=*29=f1,0,32;input_fn:30=*31=f1,0,32;;,16,32;;",128,0,0,0
	.stabs	"fp_print_t:t33=f1",128,0,0,0
	.stabs	"__ungot:G1",32,0,0,0
	.stabs	"fp_scan_t:t34=f3",128,0,0,0
	.stabs	"C:\\Program Files\\Cyan Technology\\CyanIDE\\C\\library\\__dneg.c",132,0,0,-1
	.stabs	"__dneg:F11",36,0,24,$__dneg
	.stabs	"__struct_result:r35=*11",64,0,0,2
	.stabs	"bh:p3",160,0,0,-2
	.stabs	"bl:p3",160,0,0,2
	.stabs	"!LR:3",128,0,0,-8
	.stabs	"!SP:p1",160,0,0,0
	.stabn	192,0,0,Lstab?0c
	.stabn	224,0,0,Lstab?1c
	.stabs	"a:18",128,0,0,-16
	.stabs	"__struct_result:r35=*11",64,0,0,2
	.stabs	"bh:p3",160,0,0,-2
	.stabs	"bl:p3",160,0,0,2
	.stabs	"!LR:3",128,0,0,-8
	.stabs	"!SP:p1",160,0,0,0
	.stabn	192,0,0,Lstab?1c
	.stabn	224,0,0,Lstab?2c
;
	ENDMOD



; generated by Norcroft eCOG C Compiler V1.10 $BuildRevision$
; special options:  -g
;
	MODULE qqtemp_____dmul
	.CODE
	.LARGE
	; TARGET_MAX_STACK_OVERRUN = 8
;/*=============================================================================
;Cyan Technology Ltd
;eCOG C Library
;
;FILE __dmul.c - software implementation of fp double precision multiply
;
;DESCRIPTION
;Performs a floating point multiply of one double by another. If an overflow occurs
;then it sets errno to ERANGE and returns HUGE_VAL.
;
;MODIFICATION DETAILS
;01/NOV/2001     Karl Swepson      Taken from CCLs XAP2 Library.
;26/OCT/2004     Andy Cromarty     Improved legibility, removed all while(1) loops
;                                  and added assert statements for debugging
;=============================================================================*/
;
;/* Copyright (C) Codemist Ltd, 1988 */
;/* Copyright (C) Cambridge Consultants Ltd, 1995 */
;/* Copyright (C) Cyan Technology Ltd, 2001, 2004 */
;
;#define __dmulX
;#include "__lib.h"
;#include "errno.h"
;#include "math.h"
;
;double __dmul(unsigned32 bh, unsigned32 bl, unsigned32 ch, unsigned32 cl)
;
$__dmul:
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?26.1:
	add	Y,#-24
Lstab?0a:
	st	AL,@(22,Y)
	st	AH,@(23,Y)
	st	XH,@(20,Y)
	st	X,@(21,Y)
	st	AL,@(1,Y)	; %r16 (__struct_result)
Lstab?1c:
;{
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?27.1:
Lstab?2c:
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?33.1:
	ld	AL,@(24,Y)	; %r34 (bh)
	ld	AH,@(23,Y)	; %r34 (bh)
	xor	AL,@(28,Y)	; %r38 (ch)
	xor	AH,@(27,Y)	; %r38 (ch)
	ld	AL,#0
	and	AH,#-32768
	st	AL,@(15,Y)	; %r23 (as)
	st	AH,@(14,Y)	; %r23 (as)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?35.1:
	ld	AH,#0
	ld	AL,@(23,Y)	; %r34 (bh)
	asr	#4
	and	AL,#2047
	st	AL,@(19,Y)	; %r25 (bx)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?36.1:
	ld	AH,#0
	ld	AL,@(27,Y)	; %r38 (ch)
	asr	#4
	and	AL,#2047
;    dblrep a;
;    double r;
;    unsigned32 ah, al, carry;
;    unsigned32 aa[7], bb[4], cc[4];
;    int i, j;
;    int32 as = (bh ^ ch) & 0x80000000;    /* sign for result */
;    int ax;
;    int bx = (int)(bh >> 20) & 0x7ff;
;    int cx = (int)(ch >> 20) & 0x7ff;
;
;    if ((bx == 0) || (cx == 0))
	st	AL,@(17,Y)	; %r24 (cx)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?38.1:
	add	Y,#-38
Lstab?3a:
	ld	AH,@(57,Y)	; %r25 (bx)
	beq	?L5F1
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?38.1:
	ld	AH,@(55,Y)	; %r24 (cx)
	bne	?L4F1
?L5F1:
;    {
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?39.1:
;        /* multiplication by 0.0 or subnormal value */
;        /* note sign is preserved */
;        r = i2dbl_(a, as, 0);
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?42.1:
	ld	AL,@(53,Y)	; %r23 (as)
	ld	AH,@(52,Y)	; %r23 (as)
	st	AL,@(35,Y)	; a+1
	st	AH,@(34,Y)	; a
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?42.1:
	ld	AH,#0
	ld	AL,#0
	st	AL,@(37,Y)	; a+3
	st	AH,@(36,Y)	; a+2
	mov	AL,Y
	add	AL,#34
	st	AL,@H'ffe5	; %r2 (w)
	ld	X,@H'ffe5	; %r2 (w)
	ld	AH,@(3,X)
	st	AH,@(33,Y)	; r+3
	ld	AH,@(2,X)
	st	AH,@(32,Y)	; r+2
	ld	AH,@(1,X)
	st	AH,@(31,Y)	; r+1
	ld	AH,@(0,X)
	st	AH,@(30,Y)	; r
	bra	?L69F1
?L4F1:
;    }
;    else
;    {    
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?45.1:
;        bh = (bh & 0xfffff) | 0x100000;
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?46.1:
	ld	AL,@(62,Y)	; %r34 (bh)
	ld	AH,@(61,Y)	; %r34 (bh)
	and	AH,#15
	or	AH,#16
;        ch = (ch & 0xfffff) | 0x100000;
	st	AL,@(62,Y)	; %r34 (bh)
	st	AH,@(61,Y)	; %r34 (bh)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?47.1:
	ld	AL,@(66,Y)	; %r38 (ch)
	ld	AH,@(65,Y)	; %r38 (ch)
	and	AH,#15
	or	AH,#16
;    
;        /* I split the operands into 14-bit chunks and do a long multiplication. */
;        /* As coded here I put more effort than might really be needed into the  */
;        /* low order bits of the product, but for now I am more concerned with   */
;        /* ease of coding and accuracy of results than with absolute speed.      */
;        bb[0] = bh >> 7;
	st	AL,@(66,Y)	; %r38 (ch)
	st	AH,@(65,Y)	; %r38 (ch)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?53.1:
	ld	AL,@(62,Y)	; %r34 (bh)
	ld	AH,@(61,Y)	; %r34 (bh)
	lsr	#7
	st	AL,@(9,Y)	; bb+1
	st	AH,@(8,Y)	; bb
;        bb[1] = ((bh & 0x7f) << 7) | (bl >> 25);
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?54.1:
	ld	AL,@(62,Y)	; %r34 (bh)
	ld	AH,@(61,Y)	; %r34 (bh)
	ld	AH,#0
	and	AL,#127
	asl	#7
	st	AL,@H'ffe5	; %r2 (w)
	st	AH,@H'ffe4	; %r2 (w)
	ld	AH,#0
	ld	AL,@(63,Y)	; %r36 (bl)
	asr	#9
	or	AL,@H'ffe5	; %r2 (w)
	or	AH,@H'ffe4	; %r2 (w)
	st	AL,@(11,Y)	; bb+3
	st	AH,@(10,Y)	; bb+2
;        bb[2] = (bl >> 11) & ~0x003fc000;
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?55.1:
	ld	AL,@(64,Y)	; %r36 (bl)
	ld	AH,@(63,Y)	; %r36 (bl)
	lsr	#11
	and	AL,#16383
	and	AH,#-64
	st	AL,@(13,Y)	; bb+5
	st	AH,@(12,Y)	; bb+4
;        bb[3] = (bl << 3) & 0x3fff;
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?56.1:
	ld	AL,@(64,Y)	; %r36 (bl)
	ld	AH,@(63,Y)	; %r36 (bl)
	asl	#3
	ld	AH,#0
	and	AL,#16383
	st	AL,@(15,Y)	; bb+7
	st	AH,@(14,Y)	; bb+6
;
;        cc[0] = ch >> 7;
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?58.1:
	ld	AL,@(66,Y)	; %r38 (ch)
	ld	AH,@(65,Y)	; %r38 (ch)
	lsr	#7
	st	AL,@(1,Y)	; cc+1
	st	AH,@(0,Y)	; cc
;        cc[1] = ((ch & 0x7f) << 7) | (cl >> 25);
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?59.1:
	ld	AL,@(66,Y)	; %r38 (ch)
	ld	AH,@(65,Y)	; %r38 (ch)
	ld	AH,#0
	and	AL,#127
	asl	#7
	st	AL,@H'ffe5	; %r2 (w)
	st	AH,@H'ffe4	; %r2 (w)
	ld	AH,#0
	ld	AL,@(67,Y)	; %r40 (cl)
	asr	#9
	or	AL,@H'ffe5	; %r2 (w)
	or	AH,@H'ffe4	; %r2 (w)
	st	AL,@(3,Y)	; cc+3
	st	AH,@(2,Y)	; cc+2
;        cc[2] = (cl >> 11) & ~0x003fc000;
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?60.1:
	ld	AL,@(68,Y)	; %r40 (cl)
	ld	AH,@(67,Y)	; %r40 (cl)
	lsr	#11
	and	AL,#16383
	and	AH,#-64
	st	AL,@(5,Y)	; cc+5
	st	AH,@(4,Y)	; cc+4
;        cc[3] = (cl << 3) & 0x3fff;
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?61.1:
	ld	AL,@(68,Y)	; %r40 (cl)
	ld	AH,@(67,Y)	; %r40 (cl)
	asl	#3
	ld	AH,#0
	and	AL,#16383
	st	AL,@(7,Y)	; cc+7
	st	AH,@(6,Y)	; cc+6
;
;        for (i=0; i<= 6; i++)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?63.1:
	ld	AL,#0
	st	AL,@(41,Y)	; %r17 (i)
?L13F1:
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?63.1:
	ld	AH,@(41,Y)	; %r17 (i)
	cmp	AH,#7
	blt	?L12F1
	bra	?L15F1
?L14F1:
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?63.1:
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?63.1:
	ld	AL,@(41,Y)	; %r17 (i)
	add	AL,#1
	st	AL,@(41,Y)	; %r17 (i)
	bra	?L13F1
?L12F1:
;            aa[i] = 0;
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?64.1:
	ld	AH,#0
	ld	AL,#0
	st	AL,@H'ffe5	; %r2 (w)
	st	AH,@H'ffe4	; %r2 (w)
	ld	AL,@(41,Y)	; %r17 (i)
	asl	#1
	st	Y,@H'ffe1	; %r0
	st	AL,@H'ffe7	; %r3
	ld	X,@H'ffe7	; %r3
	add	X,@H'ffe1	; %r0
	ld	AL,@H'ffe5	; %r2 (w)
	ld	AH,@H'ffe4	; %r2 (w)
	st	AL,@(17,X)	; aa+1
	st	AH,@(16,X)	; aa
	bra	?L14F1
?L15F1:
;
;        for (i=0; i<4; i++)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?66.1:
	ld	AL,#0
	st	AL,@(41,Y)	; %r17 (i)
?L18F1:
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?66.1:
	ld	AH,@(41,Y)	; %r17 (i)
	cmp	AH,#4
	blt	?L17F1
	bra	?L20F1
?L19F1:
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?66.1:
; ^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?66.1:
	ld	AL,@(41,Y)	; %r17 (i)
	add	AL,#1
	st	AL,@(41,Y)	; %r17 (i)
	bra	?L18F1
?L17F1:
;        {
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?67.1:
;            for (j=0; j<4; j++)
^qqtemp_____dmul.'C:\Program Files\Cyan Technology\CyanIDE\C\library\__dmul.c'.?68.1:
	ld	AL,#0
	st	AL,@(47,Y)	; %r20 (j)
?L24F1:
; ^qqtemp_____dmul.

⌨️ 快捷键说明

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