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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 4 页
字号:
4429  0283 1e05          	ldw	x,(OFST+5,sp)
4430  0285 90ae03e8      	ldw	y,#1000
4431  0289 65            	divw	x,y
4432  028a 1c0030        	addw	x,#48
4433  028d 1601          	ldw	y,(OFST+1,sp)
4434  028f 01            	rrwa	x,a
4435  0290 90f7          	ld	(y),a
4436  0292 02            	rlwa	x,a
4437                     ; 101 				dec %= 1000;
4439  0293 1e05          	ldw	x,(OFST+5,sp)
4440  0295 90ae03e8      	ldw	y,#1000
4441  0299 65            	divw	x,y
4442  029a 51            	exgw	x,y
4443  029b 1f05          	ldw	(OFST+5,sp),x
4444                     ; 102 				break;
4446  029d 203f          	jra	L7462
4447  029f               L1062:
4448                     ; 106 				*str = (dec/100+'0');
4450  029f 1e05          	ldw	x,(OFST+5,sp)
4451  02a1 90ae0064      	ldw	y,#100
4452  02a5 65            	divw	x,y
4453  02a6 1c0030        	addw	x,#48
4454  02a9 1601          	ldw	y,(OFST+1,sp)
4455  02ab 01            	rrwa	x,a
4456  02ac 90f7          	ld	(y),a
4457  02ae 02            	rlwa	x,a
4458                     ; 107 				dec %= 100;
4460  02af 1e05          	ldw	x,(OFST+5,sp)
4461  02b1 90ae0064      	ldw	y,#100
4462  02b5 65            	divw	x,y
4463  02b6 51            	exgw	x,y
4464  02b7 1f05          	ldw	(OFST+5,sp),x
4465                     ; 108 				break;
4467  02b9 2023          	jra	L7462
4468  02bb               L3062:
4469                     ; 112 				*str = (dec/10+'0');
4471  02bb 1e05          	ldw	x,(OFST+5,sp)
4472  02bd 90ae000a      	ldw	y,#10
4473  02c1 65            	divw	x,y
4474  02c2 1c0030        	addw	x,#48
4475  02c5 1601          	ldw	y,(OFST+1,sp)
4476  02c7 01            	rrwa	x,a
4477  02c8 90f7          	ld	(y),a
4478  02ca 02            	rlwa	x,a
4479                     ; 113 				dec %= 10;
4481  02cb 1e05          	ldw	x,(OFST+5,sp)
4482  02cd 90ae000a      	ldw	y,#10
4483  02d1 65            	divw	x,y
4484  02d2 51            	exgw	x,y
4485  02d3 1f05          	ldw	(OFST+5,sp),x
4486                     ; 114 				break;
4488  02d5 2007          	jra	L7462
4489  02d7               L5062:
4490                     ; 118 				*str = (dec+'0');
4492  02d7 7b06          	ld	a,(OFST+6,sp)
4493  02d9 ab30          	add	a,#48
4494  02db 1e01          	ldw	x,(OFST+1,sp)
4495  02dd f7            	ld	(x),a
4496                     ; 119 				break;
4498  02de               L7462:
4499                     ; 123 		width--;
4501  02de 0a07          	dec	(OFST+7,sp)
4502                     ; 124 		str++;
4504  02e0 1e01          	ldw	x,(OFST+1,sp)
4505  02e2 1c0001        	addw	x,#1
4506  02e5 1f01          	ldw	(OFST+1,sp),x
4507  02e7               L1462:
4508                     ; 88 	while(width)
4510  02e7 0d07          	tnz	(OFST+7,sp)
4511  02e9 2703          	jreq	L26
4512  02eb cc024c        	jp	L7362
4513  02ee               L26:
4514                     ; 126 }
4517  02ee 85            	popw	x
4518  02ef 81            	ret
4580                     ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4580                     ; 129 {
4581                     	switch	.text
4582  02f0               _hexToAscii:
4584  02f0 89            	pushw	x
4585  02f1 89            	pushw	x
4586       00000002      OFST:	set	2
4589  02f2 acac03ac      	jpf	L7172
4590  02f6               L5172:
4591                     ; 133 		switch(width)
4593  02f6 7b09          	ld	a,(OFST+7,sp)
4595                     ; 163 			default: *str = '0';
4596  02f8 4a            	dec	a
4597  02f9 2603          	jrne	L07
4598  02fb cc0380        	jp	L7562
4599  02fe               L07:
4600  02fe 4a            	dec	a
4601  02ff 2758          	jreq	L5562
4602  0301 4a            	dec	a
4603  0302 2730          	jreq	L3562
4604  0304 4a            	dec	a
4605  0305 2709          	jreq	L1562
4606  0307               L1662:
4609  0307 1e03          	ldw	x,(OFST+1,sp)
4610  0309 a630          	ld	a,#48
4611  030b f7            	ld	(x),a
4612  030c aca303a3      	jpf	L5272
4613  0310               L1562:
4614                     ; 137 				tmp = (hex >> 12);
4616  0310 1e07          	ldw	x,(OFST+5,sp)
4617  0312 01            	rrwa	x,a
4618  0313 4f            	clr	a
4619  0314 41            	exg	a,xl
4620  0315 4e            	swap	a
4621  0316 a40f          	and	a,#15
4622  0318 02            	rlwa	x,a
4623  0319 1f01          	ldw	(OFST-1,sp),x
4624                     ; 138 				if(tmp > 9) *str = tmp + ('A' - 10);
4626  031b 1e01          	ldw	x,(OFST-1,sp)
4627  031d a3000a        	cpw	x,#10
4628  0320 2509          	jrult	L7272
4631  0322 7b02          	ld	a,(OFST+0,sp)
4632  0324 ab37          	add	a,#55
4633  0326 1e03          	ldw	x,(OFST+1,sp)
4634  0328 f7            	ld	(x),a
4636  0329 2078          	jra	L5272
4637  032b               L7272:
4638                     ; 139 				else *str = tmp + '0';
4640  032b 7b02          	ld	a,(OFST+0,sp)
4641  032d ab30          	add	a,#48
4642  032f 1e03          	ldw	x,(OFST+1,sp)
4643  0331 f7            	ld	(x),a
4644  0332 206f          	jra	L5272
4645  0334               L3562:
4646                     ; 144 				tmp = (hex >> 8) & 0x000F;
4648  0334 1e07          	ldw	x,(OFST+5,sp)
4649  0336 4f            	clr	a
4650  0337 01            	rrwa	x,a
4651  0338 01            	rrwa	x,a
4652  0339 a40f          	and	a,#15
4653  033b 5f            	clrw	x
4654  033c 02            	rlwa	x,a
4655  033d 1f01          	ldw	(OFST-1,sp),x
4656  033f 01            	rrwa	x,a
4657                     ; 145 				if(tmp > 9) *str = tmp + ('A' - 10);
4659  0340 1e01          	ldw	x,(OFST-1,sp)
4660  0342 a3000a        	cpw	x,#10
4661  0345 2509          	jrult	L3372
4664  0347 7b02          	ld	a,(OFST+0,sp)
4665  0349 ab37          	add	a,#55
4666  034b 1e03          	ldw	x,(OFST+1,sp)
4667  034d f7            	ld	(x),a
4669  034e 2053          	jra	L5272
4670  0350               L3372:
4671                     ; 146 				else *str = tmp + '0';
4673  0350 7b02          	ld	a,(OFST+0,sp)
4674  0352 ab30          	add	a,#48
4675  0354 1e03          	ldw	x,(OFST+1,sp)
4676  0356 f7            	ld	(x),a
4677  0357 204a          	jra	L5272
4678  0359               L5562:
4679                     ; 151 				tmp = (hex >> 4) & 0x000F;
4681  0359 1e07          	ldw	x,(OFST+5,sp)
4682  035b 54            	srlw	x
4683  035c 54            	srlw	x
4684  035d 54            	srlw	x
4685  035e 54            	srlw	x
4686  035f 01            	rrwa	x,a
4687  0360 a40f          	and	a,#15
4688  0362 5f            	clrw	x
4689  0363 5f            	clrw	x
4690  0364 97            	ld	xl,a
4691  0365 1f01          	ldw	(OFST-1,sp),x
4692                     ; 152 				if(tmp > 9) *str = tmp + ('A' - 10);
4694  0367 1e01          	ldw	x,(OFST-1,sp)
4695  0369 a3000a        	cpw	x,#10
4696  036c 2509          	jrult	L7372
4699  036e 7b02          	ld	a,(OFST+0,sp)
4700  0370 ab37          	add	a,#55
4701  0372 1e03          	ldw	x,(OFST+1,sp)
4702  0374 f7            	ld	(x),a
4704  0375 202c          	jra	L5272
4705  0377               L7372:
4706                     ; 153 				else *str = tmp + '0';
4708  0377 7b02          	ld	a,(OFST+0,sp)
4709  0379 ab30          	add	a,#48
4710  037b 1e03          	ldw	x,(OFST+1,sp)
4711  037d f7            	ld	(x),a
4712  037e 2023          	jra	L5272
4713  0380               L7562:
4714                     ; 158 				tmp = hex & 0x000F;
4716  0380 7b07          	ld	a,(OFST+5,sp)
4717  0382 97            	ld	xl,a
4718  0383 7b08          	ld	a,(OFST+6,sp)
4719  0385 a40f          	and	a,#15
4720  0387 5f            	clrw	x
4721  0388 02            	rlwa	x,a
4722  0389 1f01          	ldw	(OFST-1,sp),x
4723  038b 01            	rrwa	x,a
4724                     ; 159 				if(tmp > 9) *str = tmp + ('A' - 10);
4726  038c 1e01          	ldw	x,(OFST-1,sp)
4727  038e a3000a        	cpw	x,#10
4728  0391 2509          	jrult	L3472
4731  0393 7b02          	ld	a,(OFST+0,sp)
4732  0395 ab37          	add	a,#55
4733  0397 1e03          	ldw	x,(OFST+1,sp)
4734  0399 f7            	ld	(x),a
4736  039a 2007          	jra	L5272
4737  039c               L3472:
4738                     ; 160 				else *str = tmp + '0';
4740  039c 7b02          	ld	a,(OFST+0,sp)
4741  039e ab30          	add	a,#48
4742  03a0 1e03          	ldw	x,(OFST+1,sp)
4743  03a2 f7            	ld	(x),a
4744  03a3               L5272:
4745                     ; 165 		width--;
4747  03a3 0a09          	dec	(OFST+7,sp)
4748                     ; 166 		str++;
4750  03a5 1e03          	ldw	x,(OFST+1,sp)
4751  03a7 1c0001        	addw	x,#1
4752  03aa 1f03          	ldw	(OFST+1,sp),x
4753  03ac               L7172:
4754                     ; 131 	while(width)
4756  03ac 0d09          	tnz	(OFST+7,sp)
4757  03ae 2703          	jreq	L27
4758  03b0 cc02f6        	jp	L5172
4759  03b3               L27:
4760                     ; 168 }
4763  03b3 5b04          	addw	sp,#4
4764  03b5 81            	ret
4857                     ; 170 void showLine(const u8 x,const u8 y,u8* lcd_stack,char * str,...)
4857                     ; 171 {
4858                     	switch	.text
4859  03b6               _showLine:
4861  03b6 89            	pushw	x
4862  03b7 5204          	subw	sp,#4
4863       00000004      OFST:	set	4
4866                     ; 172 	u8 coordinate = 16 * y + x;
4868  03b9 9f            	ld	a,xl
4869  03ba 97            	ld	xl,a
4870  03bb a610          	ld	a,#16
4871  03bd 42            	mul	x,a
4872  03be 9f            	ld	a,xl
4873  03bf 1b05          	add	a,(OFST+1,sp)
4874  03c1 6b04          	ld	(OFST+0,sp),a
4875                     ; 175 	va_start(marker,str); // Initialize variable arguments.  
4877  03c3 96            	ldw	x,sp
4878  03c4 1c000d        	addw	x,#OFST+9
4879  03c7 1f02          	ldw	(OFST-2,sp),x
4880                     ; 176 	for(i=0;i<64;i++)
4882  03c9 0f01          	clr	(OFST-3,sp)
4883  03cb               L5103:
4886  03cb 0c01          	inc	(OFST-3,sp)
4889  03cd 7b01          	ld	a,(OFST-3,sp)
4890  03cf a140          	cp	a,#64
4891  03d1 25f8          	jrult	L5103
4893  03d3 ace104e1      	jpf	L5203
4894  03d7               L3203:
4895                     ; 182 		if(coordinate > 64) break;	//防止堆栈溢出
4897  03d7 7b04          	ld	a,(OFST+0,sp)
4898  03d9 a141          	cp	a,#65
4899  03db 2503          	jrult	L1303
4901  03dd               L7203:
4902                     ; 217 	va_end( marker ); // Reset variable arguments. 
4904                     ; 218 } 
4907  03dd 5b06          	addw	sp,#6
4908  03df 81            	ret
4909  03e0               L1303:
4910                     ; 184 		if(*str == '\\')
4912  03e0 1e0b          	ldw	x,(OFST+7,sp)
4913  03e2 f6            	ld	a,(x)
4914  03e3 a15c          	cp	a,#92
4915  03e5 261b          	jrne	L3303
4916                     ; 186 			str++;
4918  03e7 1e0b          	ldw	x,(OFST+7,sp)
4919  03e9 1c0001        	addw	x,#1
4920  03ec 1f0b          	ldw	(OFST+7,sp),x
4921                     ; 187 			lcd_stack[coordinate] = *str;
4923  03ee 7b09          	ld	a,(OFST+5,sp)
4924  03f0 97            	ld	xl,a
4925  03f1 7b0a          	ld	a,(OFST+6,sp)
4926  03f3 1b04          	add	a,(OFST+0,sp)
4927  03f5 2401          	jrnc	L67
4928  03f7 5c            	incw	x
4929  03f8               L67:
4930  03f8 02            	rlwa	x,a
4931  03f9 160b          	ldw	y,(OFST+7,sp)

⌨️ 快捷键说明

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