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

📄 cyan_base_driver.asm

📁 使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发程序.供UART和AT指令编程者参考
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;	}
;	if(negative_flag) 
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?220.1:
	ld	AH,@(45,Y)	; %r22 (negative_flag)
	beq	?L21F9
;	{
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?221.1:
;		str_temp[int_count ++] = '-';
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?222.1:
	ld	AH,#'-'
	ld	AL,@(35,Y)	; %r17 (int_count)
	st	AL,@H'ffe1	; %r0
	add	AL,#1
	st	AL,@(35,Y)	; %r17 (int_count)
	st	AH,@H'ffe5	; %r2
	ld	AH,@H'ffe1	; %r0
	asr	#16
	st	AL,@H'ffe7	; %r3
	st	AH,@H'ffe6	; %r3
	mov	AL,Y
	add	AL,#4
	ld	AH,#0
	asl	#1
	add	AL,@H'ffe7	; %r3
	addc	AH,@H'ffe6	; %r3
	st	AL,@H'ffe7	; %r3
	st	AH,@H'ffe6	; %r3
	movax
	ld	AH,@H'ffe5	; %r2
	st.b	AH,@(0,X)
?L21F9:
;	}
;	
;	i = int_count;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?225.1:
	ld	AH,@(35,Y)	; %r17 (int_count)
;	while (i)
	st	AH,@(41,Y)	; %r20 (i)
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?226.1:
?L26F9:
; ^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?226.1:
	ld	AH,@(41,Y)	; %r20 (i)
	beq	?L27F9
;	{
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?227.1:
;		str_save[int_count-i] = str_temp[i-1];
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?228.1:
	ld	AL,@(41,Y)	; %r20 (i)
	sub	AL,#1
	asl	#16
	asr	#16
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	mov	AL,Y
	add	AL,#4
	ld	AH,#0
	asl	#1
	add	AL,@H'ffe5	; %r2
	addc	AH,@H'ffe4	; %r2
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	movax
	ld.bu	AH,@(0,X)
	ld	AL,@(35,Y)	; %r17 (int_count)
	sub	AL,@(41,Y)	; %r20 (i)
	st	AH,@H'ffe5	; %r2
	asl	#16
	asr	#16
	add	AL,@(33,Y)	; %r16 (str_save)
	addc	AH,@(32,Y)	; %r16 (str_save)
	st	AL,@H'ffe7	; %r3
	st	AH,@H'ffe6	; %r3
	movax
	ld	AH,@H'ffe5	; %r2
	st.b	AH,@(0,X)
;		--i;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?229.1:
	ld	AL,@(41,Y)	; %r20 (i)
	add	AL,#-1
	st	AL,@(41,Y)	; %r20 (i)
	bra	?L26F9
?L27F9:
;	}
;	str_save[int_count++] = '.';
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?231.1:
	ld	AH,#'.'
	ld	AL,@(35,Y)	; %r17 (int_count)
	st	AL,@H'ffe1	; %r0
	add	AL,#1
	st	AL,@(35,Y)	; %r17 (int_count)
	st	AH,@H'ffe5	; %r2
	ld	AH,@H'ffe1	; %r0
	asr	#16
	add	AL,@(33,Y)	; %r16 (str_save)
	addc	AH,@(32,Y)	; %r16 (str_save)
	st	AL,@H'ffe7	; %r3
	st	AH,@H'ffe6	; %r3
	movax
	ld	AH,@H'ffe5	; %r2
	st.b	AH,@(0,X)
;
;	_point_ = float_data - (double)u_l_int;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?233.1:
	ld	AL,@(49,Y)	; %r24 (u_l_int)
	ld	AH,@(48,Y)	; %r24 (u_l_int)
	add	Y,#-10
Lstab?36a:
	st	AL,@(1,Y)
	st	AH,@(0,Y)
	mov	AL,Y
	add	AL,#6
	ld	AH,@(0,Y)
	add	Y,#1
Lstab?37a:
	bsr	$__dflt
	mov	AH,Y
	add	AH,#5
	st	AH,@H'ffe5	; %r2
	ld	X,@H'ffe5	; %r2
	ld	AH,@(3,X)
	st	AH,@(4,Y)
	ld	AH,@(2,X)
	st	AH,@(3,Y)
	ld	AH,@(1,X)
	st	AH,@(2,Y)
	ld	AH,@(0,X)
	st	AH,@(1,Y)
	mov	AL,Y
	add	AL,#63
	st	AL,@H'ffe1	; %r0
	ld	X,@H'ffe1	; %r0
	ld	AH,@(3,X)
	st	AH,@(0,Y)
	ld	AH,@(2,X)
	st	AH,@(-1,Y)
	ld	AH,@(1,X)
	st	AH,@(-2,Y)
	ld	AH,@(0,X)
	st	AH,@(-3,Y)
	mov	AL,Y
	add	AL,#9
	ld	AH,@(-3,Y)
	add	Y,#-2
Lstab?38a:
	bsr	$__dsub
;	_point_ = (negative_flag ? -_point_ : _point_);
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?234.1:
	add	Y,#7
Lstab?39a:
	ld	AH,@(49,Y)	; %r22 (negative_flag)
	beq	?L32F9
	mov	AH,Y
	add	AH,#4
	st	AH,@H'ffe5	; %r2
	ld	X,@H'ffe5	; %r2
	ld	AH,@(3,X)
	st	AH,@(-1,Y)
	ld	AH,@(2,X)
	st	AH,@(-2,Y)
	ld	AH,@(1,X)
	st	AH,@(-3,Y)
	ld	AH,@(0,X)
	st	AH,@(-4,Y)
	st	Y,@H'ffe1	; %r0
	ld	AH,@(-4,Y)
	ld	AL,@H'ffe1	; %r0
	add	Y,#-3
Lstab?40a:
	bsr	$__dneg
	mov	AL,Y
	add	AL,#3
	add	Y,#3
Lstab?41a:
	bra	?L31F9
?L32F9:
	mov	AL,Y
	add	AL,#4
?L31F9:
	st	AL,@H'ffe1	; %r0
	ld	X,@H'ffe1	; %r0
	ld	AH,@(3,X)
	st	AH,@(7,Y)	; _point_+3
	ld	AH,@(2,X)
	st	AH,@(6,Y)	; _point_+2
	ld	AH,@(1,X)
	st	AH,@(5,Y)	; _point_+1
	ld	AH,@(0,X)
	st	AH,@(4,Y)	; _point_
;	while (point_len)
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?235.1:
	add	Y,#4
Lstab?42a:
?L35F9:
; ^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?235.1:
	ld	AH,@(47,Y)	; %r23 (point_len)
	beq	?L36F9
;	{
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?236.1:
;		_point_ *= 10;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?237.1:
	ld	X,#?lit0003
	ld	AH,@(3,X)
	st	AH,@(-1,Y)
	ld	AH,@(2,X)
	st	AH,@(-2,Y)
	ld	AH,@(1,X)
	st	AH,@(-3,Y)
	ld	AH,@(0,X)
	st	AH,@(-4,Y)
	st	Y,@H'ffe1	; %r0
	ld	X,@H'ffe1	; %r0
	ld	AH,@(3,X)
	st	AH,@(-5,Y)
	ld	AH,@(2,X)
	st	AH,@(-6,Y)
	ld	AH,@(1,X)
	st	AH,@(-7,Y)
	ld	AH,@(0,X)
	st	AH,@(-8,Y)
	st	Y,@H'ffe1	; %r0
	ld	AH,@(-8,Y)
	ld	AL,@H'ffe1	; %r0
	add	Y,#-7
Lstab?43a:
	bsr	$__dmul
;		one_int_p = (int)(_point_);
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?238.1:
	mov	AL,Y
	add	AL,#7
	st	AL,@H'ffe1	; %r0
	ld	X,@H'ffe1	; %r0
	ld	AH,@(3,X)
	st	AH,@(6,Y)
	ld	AH,@(2,X)
	st	AH,@(5,Y)
	ld	AH,@(1,X)
	st	AH,@(4,Y)
	ld	AH,@(0,X)
	st	AH,@(3,Y)
	ld	AL,@(4,Y)
	ld	AH,@(3,Y)
	add	Y,#5

⌨️ 快捷键说明

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