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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 4 页
字号:
3646  013f               L1622:
3647                     ; 73 		sendDataST7920(*(lcd_stack + addr));
3649  013f 7b02          	ld	a,(OFST+1,sp)
3650  0141 97            	ld	xl,a
3651  0142 7b03          	ld	a,(OFST+2,sp)
3652  0144 1b01          	add	a,(OFST+0,sp)
3653  0146 2401          	jrnc	L03
3654  0148 5c            	incw	x
3655  0149               L03:
3656  0149 02            	rlwa	x,a
3657  014a f6            	ld	a,(x)
3658  014b ad9c          	call	_sendDataST7920
3660                     ; 71 	for(addr=32;addr<48;addr++)
3662  014d 0c01          	inc	(OFST+0,sp)
3665  014f 7b01          	ld	a,(OFST+0,sp)
3666  0151 a130          	cp	a,#48
3667  0153 25ea          	jrult	L1622
3668                     ; 75 	for(addr=16;addr<32;addr++)
3670  0155 a610          	ld	a,#16
3671  0157 6b01          	ld	(OFST+0,sp),a
3672  0159               L7622:
3673                     ; 77 		sendDataST7920(*(lcd_stack + addr));
3675  0159 7b02          	ld	a,(OFST+1,sp)
3676  015b 97            	ld	xl,a
3677  015c 7b03          	ld	a,(OFST+2,sp)
3678  015e 1b01          	add	a,(OFST+0,sp)
3679  0160 2401          	jrnc	L23
3680  0162 5c            	incw	x
3681  0163               L23:
3682  0163 02            	rlwa	x,a
3683  0164 f6            	ld	a,(x)
3684  0165 ad82          	call	_sendDataST7920
3686                     ; 75 	for(addr=16;addr<32;addr++)
3688  0167 0c01          	inc	(OFST+0,sp)
3691  0169 7b01          	ld	a,(OFST+0,sp)
3692  016b a120          	cp	a,#32
3693  016d 25ea          	jrult	L7622
3694                     ; 80 	for(addr=48;addr<64;addr++)
3696  016f a630          	ld	a,#48
3697  0171 6b01          	ld	(OFST+0,sp),a
3698  0173               L5722:
3699                     ; 82 		sendDataST7920(*(lcd_stack + addr));
3701  0173 7b02          	ld	a,(OFST+1,sp)
3702  0175 97            	ld	xl,a
3703  0176 7b03          	ld	a,(OFST+2,sp)
3704  0178 1b01          	add	a,(OFST+0,sp)
3705  017a 2401          	jrnc	L43
3706  017c 5c            	incw	x
3707  017d               L43:
3708  017d 02            	rlwa	x,a
3709  017e f6            	ld	a,(x)
3710  017f cd00e9        	call	_sendDataST7920
3712                     ; 80 	for(addr=48;addr<64;addr++)
3714  0182 0c01          	inc	(OFST+0,sp)
3717  0184 7b01          	ld	a,(OFST+0,sp)
3718  0186 a140          	cp	a,#64
3719  0188 25e9          	jrult	L5722
3720                     ; 84 }
3723  018a 5b03          	addw	sp,#3
3724  018c 81            	ret
3773                     ; 86 void decToAscii(u8* str,u16 dec,u8 width)
3773                     ; 87 {
3774                     	switch	.text
3775  018d               _decToAscii:
3777  018d 89            	pushw	x
3778       00000000      OFST:	set	0
3781  018e ac2d022d      	jpf	L3432
3782  0192               L1432:
3783                     ; 90 		switch(width)
3785  0192 7b07          	ld	a,(OFST+7,sp)
3787                     ; 121 			default: *str = '0';
3788  0194 4a            	dec	a
3789  0195 2603cc021d    	jreq	L3132
3790  019a 4a            	dec	a
3791  019b 2764          	jreq	L1132
3792  019d 4a            	dec	a
3793  019e 2745          	jreq	L7032
3794  01a0 4a            	dec	a
3795  01a1 2726          	jreq	L5032
3796  01a3 4a            	dec	a
3797  01a4 2707          	jreq	L3032
3798  01a6               L5132:
3801  01a6 1e01          	ldw	x,(OFST+1,sp)
3802  01a8 a630          	ld	a,#48
3803  01aa f7            	ld	(x),a
3804  01ab 2077          	jra	L1532
3805  01ad               L3032:
3806                     ; 94 				*str = (dec / 10000 + '0');
3808  01ad 1e05          	ldw	x,(OFST+5,sp)
3809  01af 90ae2710      	ldw	y,#10000
3810  01b3 65            	divw	x,y
3811  01b4 1c0030        	addw	x,#48
3812  01b7 1601          	ldw	y,(OFST+1,sp)
3813  01b9 01            	rrwa	x,a
3814  01ba 90f7          	ld	(y),a
3815  01bc 02            	rlwa	x,a
3816                     ; 95 				dec %= 10000;
3818  01bd 1e05          	ldw	x,(OFST+5,sp)
3819  01bf 90ae2710      	ldw	y,#10000
3820  01c3 65            	divw	x,y
3821  01c4 51            	exgw	x,y
3822  01c5 1f05          	ldw	(OFST+5,sp),x
3823                     ; 96 				break;
3825  01c7 205b          	jra	L1532
3826  01c9               L5032:
3827                     ; 100 				*str = (dec / 1000 + '0');
3829  01c9 1e05          	ldw	x,(OFST+5,sp)
3830  01cb 90ae03e8      	ldw	y,#1000
3831  01cf 65            	divw	x,y
3832  01d0 1c0030        	addw	x,#48
3833  01d3 1601          	ldw	y,(OFST+1,sp)
3834  01d5 01            	rrwa	x,a
3835  01d6 90f7          	ld	(y),a
3836  01d8 02            	rlwa	x,a
3837                     ; 101 				dec %= 1000;
3839  01d9 1e05          	ldw	x,(OFST+5,sp)
3840  01db 90ae03e8      	ldw	y,#1000
3841  01df 65            	divw	x,y
3842  01e0 51            	exgw	x,y
3843  01e1 1f05          	ldw	(OFST+5,sp),x
3844                     ; 102 				break;
3846  01e3 203f          	jra	L1532
3847  01e5               L7032:
3848                     ; 106 				*str = (dec/100+'0');
3850  01e5 1e05          	ldw	x,(OFST+5,sp)
3851  01e7 90ae0064      	ldw	y,#100
3852  01eb 65            	divw	x,y
3853  01ec 1c0030        	addw	x,#48
3854  01ef 1601          	ldw	y,(OFST+1,sp)
3855  01f1 01            	rrwa	x,a
3856  01f2 90f7          	ld	(y),a
3857  01f4 02            	rlwa	x,a
3858                     ; 107 				dec %= 100;
3860  01f5 1e05          	ldw	x,(OFST+5,sp)
3861  01f7 90ae0064      	ldw	y,#100
3862  01fb 65            	divw	x,y
3863  01fc 51            	exgw	x,y
3864  01fd 1f05          	ldw	(OFST+5,sp),x
3865                     ; 108 				break;
3867  01ff 2023          	jra	L1532
3868  0201               L1132:
3869                     ; 112 				*str = (dec/10+'0');
3871  0201 1e05          	ldw	x,(OFST+5,sp)
3872  0203 90ae000a      	ldw	y,#10
3873  0207 65            	divw	x,y
3874  0208 1c0030        	addw	x,#48
3875  020b 1601          	ldw	y,(OFST+1,sp)
3876  020d 01            	rrwa	x,a
3877  020e 90f7          	ld	(y),a
3878  0210 02            	rlwa	x,a
3879                     ; 113 				dec %= 10;
3881  0211 1e05          	ldw	x,(OFST+5,sp)
3882  0213 90ae000a      	ldw	y,#10
3883  0217 65            	divw	x,y
3884  0218 51            	exgw	x,y
3885  0219 1f05          	ldw	(OFST+5,sp),x
3886                     ; 114 				break;
3888  021b 2007          	jra	L1532
3889  021d               L3132:
3890                     ; 118 				*str = (dec+'0');
3892  021d 7b06          	ld	a,(OFST+6,sp)
3893  021f ab30          	add	a,#48
3894  0221 1e01          	ldw	x,(OFST+1,sp)
3895  0223 f7            	ld	(x),a
3896                     ; 119 				break;
3898  0224               L1532:
3899                     ; 123 		width--;
3901  0224 0a07          	dec	(OFST+7,sp)
3902                     ; 124 		str++;
3904  0226 1e01          	ldw	x,(OFST+1,sp)
3905  0228 1c0001        	addw	x,#1
3906  022b 1f01          	ldw	(OFST+1,sp),x
3907  022d               L3432:
3908                     ; 88 	while(width)
3910  022d 0d07          	tnz	(OFST+7,sp)
3911  022f 2703          	jreq	L24
3912  0231 cc0192        	jp	L1432
3913  0234               L24:
3914                     ; 126 }
3917  0234 85            	popw	x
3918  0235 81            	ret
3974                     ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
3974                     ; 129 {
3975                     	switch	.text
3976  0236               _hexToAscii:
3978  0236 89            	pushw	x
3979  0237 89            	pushw	x
3980       00000002      OFST:	set	2
3983  0238 acf202f2      	jpf	L3142
3984  023c               L1142:
3985                     ; 133 		switch(width)
3987  023c 7b09          	ld	a,(OFST+7,sp)
3989                     ; 163 			default: *str = '0';
3990  023e 4a            	dec	a
3991  023f 2603          	jrne	L05
3992  0241 cc02c6        	jp	L1632
3993  0244               L05:
3994  0244 4a            	dec	a
3995  0245 2758          	jreq	L7532
3996  0247 4a            	dec	a
3997  0248 2730          	jreq	L5532
3998  024a 4a            	dec	a
3999  024b 2709          	jreq	L3532
4000  024d               L3632:
4003  024d 1e03          	ldw	x,(OFST+1,sp)
4004  024f a630          	ld	a,#48
4005  0251 f7            	ld	(x),a
4006  0252 ace902e9      	jpf	L1242
4007  0256               L3532:
4008                     ; 137 				tmp = (hex >> 12);
4010  0256 1e07          	ldw	x,(OFST+5,sp)
4011  0258 01            	rrwa	x,a
4012  0259 4f            	clr	a
4013  025a 41            	exg	a,xl
4014  025b 4e            	swap	a
4015  025c a40f          	and	a,#15
4016  025e 02            	rlwa	x,a
4017  025f 1f01          	ldw	(OFST-1,sp),x
4018                     ; 138 				if(tmp > 9) *str = tmp + ('A' - 10);
4020  0261 1e01          	ldw	x,(OFST-1,sp)
4021  0263 a3000a        	cpw	x,#10
4022  0266 2509          	jrult	L3242
4025  0268 7b02          	ld	a,(OFST+0,sp)
4026  026a ab37          	add	a,#55
4027  026c 1e03          	ldw	x,(OFST+1,sp)
4028  026e f7            	ld	(x),a
4030  026f 2078          	jra	L1242
4031  0271               L3242:
4032                     ; 139 				else *str = tmp + '0';
4034  0271 7b02          	ld	a,(OFST+0,sp)
4035  0273 ab30          	add	a,#48
4036  0275 1e03          	ldw	x,(OFST+1,sp)
4037  0277 f7            	ld	(x),a
4038  0278 206f          	jra	L1242
4039  027a               L5532:
4040                     ; 144 				tmp = (hex >> 8) & 0x000F;
4042  027a 1e07          	ldw	x,(OFST+5,sp)
4043  027c 4f            	clr	a
4044  027d 01            	rrwa	x,a
4045  027e 01            	rrwa	x,a
4046  027f a40f          	and	a,#15
4047  0281 5f            	clrw	x
4048  0282 02            	rlwa	x,a
4049  0283 1f01          	ldw	(OFST-1,sp),x
4050  0285 01            	rrwa	x,a
4051                     ; 145 				if(tmp > 9) *str = tmp + ('A' - 10);
4053  0286 1e01          	ldw	x,(OFST-1,sp)
4054  0288 a3000a        	cpw	x,#10
4055  028b 2509          	jrult	L7242
4058  028d 7b02          	ld	a,(OFST+0,sp)
4059  028f ab37          	add	a,#55
4060  0291 1e03          	ldw	x,(OFST+1,sp)
4061  0293 f7            	ld	(x),a
4063  0294 2053          	jra	L1242
4064  0296               L7242:
4065                     ; 146 				else *str = tmp + '0';
4067  0296 7b02          	ld	a,(OFST+0,sp)
4068  0298 ab30          	add	a,#48
4069  029a 1e03          	ldw	x,(OFST+1,sp)
4070  029c f7            	ld	(x),a
4071  029d 204a          	jra	L1242
4072  029f               L7532:
4073                     ; 151 				tmp = (hex >> 4) & 0x000F;
4075  029f 1e07          	ldw	x,(OFST+5,sp)
4076  02a1 54            	srlw	x
4077  02a2 54            	srlw	x
4078  02a3 54            	srlw	x
4079  02a4 54            	srlw	x
4080  02a5 01            	rrwa	x,a
4081  02a6 a40f          	and	a,#15
4082  02a8 5f            	clrw	x
4083  02a9 5f            	clrw	x
4084  02aa 97            	ld	xl,a
4085  02ab 1f01          	ldw	(OFST-1,sp),x
4086                     ; 152 				if(tmp > 9) *str = tmp + ('A' - 10);
4088  02ad 1e01          	ldw	x,(OFST-1,sp)
4089  02af a3000a        	cpw	x,#10
4090  02b2 2509          	jrult	L3342
4093  02b4 7b02          	ld	a,(OFST+0,sp)
4094  02b6 ab37          	add	a,#55
4095  02b8 1e03          	ldw	x,(OFST+1,sp)
4096  02ba f7            	ld	(x),a
4098  02bb 202c          	jra	L1242
4099  02bd               L3342:
4100                     ; 153 				else *str = tmp + '0';
4102  02bd 7b02          	ld	a,(OFST+0,sp)
4103  02bf ab30          	add	a,#48
4104  02c1 1e03          	ldw	x,(OFST+1,sp)
4105  02c3 f7            	ld	(x),a

⌨️ 快捷键说明

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