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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 3 页
字号:
4600  038a ac980498      	jpf	L1462
4601  038e               L7362:
4602                     ; 182 		if(coordinate > 64) break;	//防止堆栈溢出
4604  038e 7b04          	ld	a,(OFST+0,sp)
4605  0390 a141          	cp	a,#65
4606  0392 2503          	jrult	L5462
4608  0394               L3462:
4609                     ; 217 	va_end( marker ); // Reset variable arguments. 
4611                     ; 218 } 
4614  0394 5b06          	addw	sp,#6
4615  0396 81            	ret
4616  0397               L5462:
4617                     ; 184 		if(*str == '\\')
4619  0397 1e0b          	ldw	x,(OFST+7,sp)
4620  0399 f6            	ld	a,(x)
4621  039a a15c          	cp	a,#92
4622  039c 261b          	jrne	L7462
4623                     ; 186 			str++;
4625  039e 1e0b          	ldw	x,(OFST+7,sp)
4626  03a0 1c0001        	addw	x,#1
4627  03a3 1f0b          	ldw	(OFST+7,sp),x
4628                     ; 187 			lcd_stack[coordinate] = *str;
4630  03a5 7b09          	ld	a,(OFST+5,sp)
4631  03a7 97            	ld	xl,a
4632  03a8 7b0a          	ld	a,(OFST+6,sp)
4633  03aa 1b04          	add	a,(OFST+0,sp)
4634  03ac 2401          	jrnc	L46
4635  03ae 5c            	incw	x
4636  03af               L46:
4637  03af 02            	rlwa	x,a
4638  03b0 160b          	ldw	y,(OFST+7,sp)
4639  03b2 90f6          	ld	a,(y)
4640  03b4 f7            	ld	(x),a
4642  03b5 ac8f048f      	jpf	L1562
4643  03b9               L7462:
4644                     ; 189 		else if(*str == '%')
4646  03b9 1e0b          	ldw	x,(OFST+7,sp)
4647  03bb f6            	ld	a,(x)
4648  03bc a125          	cp	a,#37
4649  03be 2703          	jreq	L67
4650  03c0 cc047f        	jp	L3562
4651  03c3               L67:
4652                     ; 191 			str++;
4654  03c3 1e0b          	ldw	x,(OFST+7,sp)
4655  03c5 1c0001        	addw	x,#1
4656  03c8 1f0b          	ldw	(OFST+7,sp),x
4657                     ; 192 			if (*str == 'd' || *str == 'D')
4659  03ca 1e0b          	ldw	x,(OFST+7,sp)
4660  03cc f6            	ld	a,(x)
4661  03cd a164          	cp	a,#100
4662  03cf 2707          	jreq	L7562
4664  03d1 1e0b          	ldw	x,(OFST+7,sp)
4665  03d3 f6            	ld	a,(x)
4666  03d4 a144          	cp	a,#68
4667  03d6 2637          	jrne	L5562
4668  03d8               L7562:
4669                     ; 194 				str++;
4671  03d8 1e0b          	ldw	x,(OFST+7,sp)
4672  03da 1c0001        	addw	x,#1
4673  03dd 1f0b          	ldw	(OFST+7,sp),x
4674                     ; 195 				decToAscii(&lcd_stack[coordinate],va_arg(marker,u16),(*str-'0'));
4676  03df 1e0b          	ldw	x,(OFST+7,sp)
4677  03e1 f6            	ld	a,(x)
4678  03e2 a030          	sub	a,#48
4679  03e4 88            	push	a
4680  03e5 1e03          	ldw	x,(OFST-1,sp)
4681  03e7 1c0002        	addw	x,#2
4682  03ea 1f03          	ldw	(OFST-1,sp),x
4683  03ec 1e03          	ldw	x,(OFST-1,sp)
4684  03ee 5a            	decw	x
4685  03ef 5a            	decw	x
4686  03f0 fe            	ldw	x,(x)
4687  03f1 89            	pushw	x
4688  03f2 7b0c          	ld	a,(OFST+8,sp)
4689  03f4 97            	ld	xl,a
4690  03f5 7b0d          	ld	a,(OFST+9,sp)
4691  03f7 1b07          	add	a,(OFST+3,sp)
4692  03f9 2401          	jrnc	L66
4693  03fb 5c            	incw	x
4694  03fc               L66:
4695  03fc 02            	rlwa	x,a
4696  03fd cd01fe        	call	_decToAscii
4698  0400 5b03          	addw	sp,#3
4699                     ; 196 				coordinate += (*str-'0'-1);
4701  0402 1e0b          	ldw	x,(OFST+7,sp)
4702  0404 f6            	ld	a,(x)
4703  0405 a031          	sub	a,#49
4704  0407 1b04          	add	a,(OFST+0,sp)
4705  0409 6b04          	ld	(OFST+0,sp),a
4707  040b ac8f048f      	jpf	L1562
4708  040f               L5562:
4709                     ; 198 			else if(*str == 'c' || *str == 'C')
4711  040f 1e0b          	ldw	x,(OFST+7,sp)
4712  0411 f6            	ld	a,(x)
4713  0412 a163          	cp	a,#99
4714  0414 2707          	jreq	L5662
4716  0416 1e0b          	ldw	x,(OFST+7,sp)
4717  0418 f6            	ld	a,(x)
4718  0419 a143          	cp	a,#67
4719  041b 261f          	jrne	L3662
4720  041d               L5662:
4721                     ; 200 				lcd_stack[coordinate] = va_arg(marker,u16);
4723  041d 7b09          	ld	a,(OFST+5,sp)
4724  041f 97            	ld	xl,a
4725  0420 7b0a          	ld	a,(OFST+6,sp)
4726  0422 1b04          	add	a,(OFST+0,sp)
4727  0424 2401          	jrnc	L07
4728  0426 5c            	incw	x
4729  0427               L07:
4730  0427 02            	rlwa	x,a
4731  0428 1602          	ldw	y,(OFST-2,sp)
4732  042a 72a90002      	addw	y,#2
4733  042e 1702          	ldw	(OFST-2,sp),y
4734  0430 1602          	ldw	y,(OFST-2,sp)
4735  0432 905a          	decw	y
4736  0434 905a          	decw	y
4737  0436 90e601        	ld	a,(1,y)
4738  0439 f7            	ld	(x),a
4740  043a 2053          	jra	L1562
4741  043c               L3662:
4742                     ; 202 			else if(*str == 'x' || *str == 'X')
4744  043c 1e0b          	ldw	x,(OFST+7,sp)
4745  043e f6            	ld	a,(x)
4746  043f a178          	cp	a,#120
4747  0441 2707          	jreq	L3762
4749  0443 1e0b          	ldw	x,(OFST+7,sp)
4750  0445 f6            	ld	a,(x)
4751  0446 a158          	cp	a,#88
4752  0448 2645          	jrne	L1562
4753  044a               L3762:
4754                     ; 204 				str++;
4756  044a 1e0b          	ldw	x,(OFST+7,sp)
4757  044c 1c0001        	addw	x,#1
4758  044f 1f0b          	ldw	(OFST+7,sp),x
4759                     ; 205 				hexToAscii(&lcd_stack[coordinate],va_arg(marker,u16),(*str - '0'));
4761  0451 1e0b          	ldw	x,(OFST+7,sp)
4762  0453 f6            	ld	a,(x)
4763  0454 a030          	sub	a,#48
4764  0456 88            	push	a
4765  0457 1e03          	ldw	x,(OFST-1,sp)
4766  0459 1c0002        	addw	x,#2
4767  045c 1f03          	ldw	(OFST-1,sp),x
4768  045e 1e03          	ldw	x,(OFST-1,sp)
4769  0460 5a            	decw	x
4770  0461 5a            	decw	x
4771  0462 fe            	ldw	x,(x)
4772  0463 89            	pushw	x
4773  0464 7b0c          	ld	a,(OFST+8,sp)
4774  0466 97            	ld	xl,a
4775  0467 7b0d          	ld	a,(OFST+9,sp)
4776  0469 1b07          	add	a,(OFST+3,sp)
4777  046b 2401          	jrnc	L27
4778  046d 5c            	incw	x
4779  046e               L27:
4780  046e 02            	rlwa	x,a
4781  046f cd02a7        	call	_hexToAscii
4783  0472 5b03          	addw	sp,#3
4784                     ; 206 				coordinate += (*str - '0' - 1);
4786  0474 1e0b          	ldw	x,(OFST+7,sp)
4787  0476 f6            	ld	a,(x)
4788  0477 a031          	sub	a,#49
4789  0479 1b04          	add	a,(OFST+0,sp)
4790  047b 6b04          	ld	(OFST+0,sp),a
4791  047d 2010          	jra	L1562
4792  047f               L3562:
4793                     ; 212 			lcd_stack[coordinate] = *str;
4795  047f 7b09          	ld	a,(OFST+5,sp)
4796  0481 97            	ld	xl,a
4797  0482 7b0a          	ld	a,(OFST+6,sp)
4798  0484 1b04          	add	a,(OFST+0,sp)
4799  0486 2401          	jrnc	L47
4800  0488 5c            	incw	x
4801  0489               L47:
4802  0489 02            	rlwa	x,a
4803  048a 160b          	ldw	y,(OFST+7,sp)
4804  048c 90f6          	ld	a,(y)
4805  048e f7            	ld	(x),a
4806  048f               L1562:
4807                     ; 214 		str++;
4809  048f 1e0b          	ldw	x,(OFST+7,sp)
4810  0491 1c0001        	addw	x,#1
4811  0494 1f0b          	ldw	(OFST+7,sp),x
4812                     ; 215 		coordinate++;
4814  0496 0c04          	inc	(OFST+0,sp)
4815  0498               L1462:
4816                     ; 180 	while(*str != '\0')
4818  0498 1e0b          	ldw	x,(OFST+7,sp)
4819  049a 7d            	tnz	(x)
4820  049b 2703          	jreq	L001
4821  049d cc038e        	jp	L7362
4822  04a0               L001:
4823  04a0 ac940394      	jpf	L3462
4922                     ; 20 main()
4922                     ; 21 {
4923                     	switch	.text
4924  04a4               _main:
4926  04a4 521f          	subw	sp,#31
4927       0000001f      OFST:	set	31
4930                     ; 22 	u8 num=0;
4932                     ; 24 	AT45DBXX_Init();/*
4934  04a6 cd0082        	call	_AT45DBXX_Init
4936                     ; 29 	for(num=0;num<30;num++) 
4938  04a9 0f1f          	clr	(OFST+0,sp)
4939  04ab               L3472:
4940                     ; 31 		write_buffer((u16)num,num);
4942  04ab 7b1f          	ld	a,(OFST+0,sp)
4943  04ad 88            	push	a
4944  04ae 7b20          	ld	a,(OFST+1,sp)
4945  04b0 5f            	clrw	x
4946  04b1 97            	ld	xl,a
4947  04b2 cd0091        	call	_write_buffer
4949  04b5 84            	pop	a
4950                     ; 32 		delay_ms(1);
4952  04b6 ae0001        	ldw	x,#1
4953  04b9 cd0000        	call	_delay_ms
4955                     ; 29 	for(num=0;num<30;num++) 
4957  04bc 0c1f          	inc	(OFST+0,sp)
4960  04be 7b1f          	ld	a,(OFST+0,sp)
4961  04c0 a11e          	cp	a,#30
4962  04c2 25e7          	jrult	L3472
4963                     ; 34 	for(num=0;num<30;num++)
4965  04c4 0f1f          	clr	(OFST+0,sp)
4966  04c6               L1572:
4967                     ; 36 		tmp[num]=read_buffer((u16)num);
4969  04c6 96            	ldw	x,sp
4970  04c7 1c0001        	addw	x,#OFST-30
4971  04ca 9f            	ld	a,xl
4972  04cb 5e            	swapw	x
4973  04cc 1b1f          	add	a,(OFST+0,sp)
4974  04ce 2401          	jrnc	L401
4975  04d0 5c            	incw	x
4976  04d1               L401:
4977  04d1 02            	rlwa	x,a
4978  04d2 89            	pushw	x
4979  04d3 7b21          	ld	a,(OFST+2,sp)
4980  04d5 5f            	clrw	x
4981  04d6 97            	ld	xl,a
4982  04d7 cd00ba        	call	_read_buffer
4984  04da 85            	popw	x
4985  04db f7            	ld	(x),a
4986                     ; 37 		delay_ms(1);
4988  04dc ae0001        	ldw	x,#1
4989  04df cd0000        	call	_delay_ms
4991                     ; 34 	for(num=0;num<30;num++)
4993  04e2 0c1f          	inc	(OFST+0,sp)
4996  04e4 7b1f          	ld	a,(OFST+0,sp)
4997  04e6 a11e          	cp	a,#30
4998  04e8 25dc          	jrult	L1572
4999                     ; 39 	sendCodeST7920(0x80);
5001  04ea a680          	ld	a,#128
5002  04ec cd0126        	call	_sendCodeST7920
5004                     ; 40 	st7920LcdInit();
5006  04ef cd00f0        	call	_st7920LcdInit
5008                     ; 41 	showLine(0,0,lcd_buffer,"AT45DBXX Example");
5010  04f2 ae0027        	ldw	x,#L7572
5011  04f5 89            	pushw	x
5012  04f6 ae0000        	ldw	x,#_lcd_buffer
5013  04f9 89            	pushw	x
5014  04fa 5f            	clrw	x
5015  04fb 4f            	clr	a
5016  04fc 95            	ld	xh,a
5017  04fd cd036d        	call	_showLine
5019  0500 5b04          	addw	sp,#4
5020                     ; 42 	showLine(0,1,lcd_buffer,"Program: OK!");
5022  0502 ae001a        	ldw	x,#L1672
5023  0505 89            	pushw	x
5024  0506 ae0000        	ldw	x,#_lcd_buffer
5025  0509 89            	pushw	x
5026  050a ae0001        	ldw	x,#1
5027  050d 4f            	clr	a
5028  050e 95            	ld	xh,a
5029  050f cd036d        	call	_showLine
5031  0512 5b04          	addw	sp,#4
5032                     ; 43 	showLine(0,2,lcd_buffer,"Verify: OK!");
5034  0514 ae000e        	ldw	x,#L3672
5035  0517 89            	pushw	x
5036  0518 ae0000        	ldw	x,#_lcd_buffer
5037  051b 89            	pushw	x
5038  051c ae0002        	ldw	x,#2
5039  051f 4f            	clr	a
5040  0520 95            	ld	xh,a
5041  0521 cd036d        	call	_showLine
5043  0524 5b04          	addw	sp,#4
5044                     ; 44 	showLine(0,3,lcd_buffer,"Output:");
5046  0526 ae0006        	ldw	x,#L5672
5047  0529 89            	pushw	x
5048  052a ae0000        	ldw	x,#_lcd_buffer
5049  052d 89            	pushw	x
5050  052e ae0003        	ldw	x,#3
5051  0531 4f            	clr	a
5052  0532 95            	ld	xh,a
5053  0533 cd036d        	call	_showLine
5055  0536 5b04          	addw	sp,#4
5056                     ; 47 	for(num=0;num<30;num++)
5058  0538 0f1f          	clr	(OFST+0,sp)
5059  053a               L7672:
5060                     ; 49 		showLine(8,3,lcd_buffer,"0x%x2",(u16)tmp[num]);
5062  053a 96            	ldw	x,sp
5063  053b 1c0001        	addw	x,#OFST-30
5064  053e 9f            	ld	a,xl
5065  053f 5e            	swapw	x
5066  0540 1b1f          	add	a,(OFST+0,sp)
5067  0542 2401          	jrnc	L601
5068  0544 5c            	incw	x
5069  0545               L601:
5070  0545 02            	rlwa	x,a
5071  0546 f6            	ld	a,(x)
5072  0547 5f            	clrw	x
5073  0548 97            	ld	xl,a
5074  0549 89            	pushw	x
5075  054a ae0000        	ldw	x,#L5772
5076  054d 89            	pushw	x
5077  054e ae0000        	ldw	x,#_lcd_buffer
5078  0551 89            	pushw	x
5079  0552 ae0003        	ldw	x,#3
5080  0555 a608          	ld	a,#8
5081  0557 95            	ld	xh,a
5082  0558 cd036d        	call	_showLine
5084  055b 5b06          	addw	sp,#6
5085                     ; 50 		refreshLCD(lcd_buffer);
5087  055d ae0000        	ldw	x,#_lcd_buffer
5088  0560 cd018e        	call	_refreshLCD
5090                     ; 51 		delay_ms(1000);
5092  0563 ae03e8        	ldw	x,#1000
5093  0566 cd0000        	call	_delay_ms
5095                     ; 47 	for(num=0;num<30;num++)
5097  0569 0c1f          	inc	(OFST+0,sp)
5100  056b 7b1f          	ld	a,(OFST+0,sp)
5101  056d a11e          	cp	a,#30
5102  056f 25c9          	jrult	L7672
5103  0571               L7772:
5104                     ; 54 	while (1);
5106  0571 20fe          	jra	L7772
5119                     	xdef	_main
5120                     	switch	.ubsct
5121  0000               _lcd_buffer:
5122  0000 000000000000  	ds.b	64
5123                     	xdef	_lcd_buffer
5124                     	xdef	_showLine
5125                     	xdef	_hexToAscii
5126                     	xdef	_decToAscii
5127                     	xdef	_refreshLCD
5128                     	xdef	_st7920LcdInit
5129                     	xdef	_sendDataST7920
5130                     	xdef	_sendCodeST7920
5131                     	xdef	_read_buffer
5132                     	xdef	_write_buffer
5133                     	xdef	_AT45DBXX_Init
5134                     	xdef	_SPI_rechar
5135                     	xdef	_SPI_sendchar
5136                     	xdef	_SPI_Init
5137                     	xdef	_delay_us
5138                     	xdef	_delay_ms
5139                     .const:	section	.text
5140  0000               L5772:
5141  0000 307825783200  	dc.b	"0x%x2",0
5142  0006               L5672:
5143  0006 4f7574707574  	dc.b	"Output:",0
5144  000e               L3672:
5145  000e 566572696679  	dc.b	"Verify: OK!",0
5146  001a               L1672:
5147  001a 50726f677261  	dc.b	"Program: OK!",0
5148  0027               L7572:
5149  0027 415434354442  	dc.b	"AT45DBXX Example",0
5169                     	end

⌨️ 快捷键说明

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