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

📄 smg.lss

📁 AVR Devolpment Board
💻 LSS
字号:

smg.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000001c6  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000000  00800060  000001c6  0000025a  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000008  00800060  00800060  0000025a  2**0
                  ALLOC
  3 .noinit       00000000  00800068  00800068  0000025a  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000025a  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  0000025c  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000005c8  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  0000064c  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000041  00000000  00000000  00000660  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   0000020f  00000000  00000000  000006a1  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 00000110  00000000  00000000  000008b0  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   00000176  00000000  00000000  000009c0  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    00000128  00000000  00000000  00000b36  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 32 00 	jmp	0x64 <__init>
   4:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
   8:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
   c:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  10:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  14:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  18:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  1c:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  20:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  24:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  28:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  2c:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  30:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  34:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  38:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  3c:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  40:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  44:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  48:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  4c:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>
  50:	0c 94 4d 00 	jmp	0x9a <__bad_interrupt>

00000054 <SegCode>:
  54:	3f 06 5b 4f 66 6d 7d 07 7f 6f 77 7c 39 5e 79 71     ?.[Ofm}..ow|9^yq

00000064 <__init>:
  64:	11 24       	eor	r1, r1
  66:	1f be       	out	0x3f, r1	; 63
  68:	cf e5       	ldi	r28, 0x5F	; 95
  6a:	d4 e0       	ldi	r29, 0x04	; 4
  6c:	de bf       	out	0x3e, r29	; 62
  6e:	cd bf       	out	0x3d, r28	; 61

00000070 <__do_copy_data>:
  70:	10 e0       	ldi	r17, 0x00	; 0
  72:	a0 e6       	ldi	r26, 0x60	; 96
  74:	b0 e0       	ldi	r27, 0x00	; 0
  76:	e6 ec       	ldi	r30, 0xC6	; 198
  78:	f1 e0       	ldi	r31, 0x01	; 1
  7a:	02 c0       	rjmp	.+4      	; 0x80 <.do_copy_data_start>

0000007c <.do_copy_data_loop>:
  7c:	05 90       	lpm	r0, Z+
  7e:	0d 92       	st	X+, r0

00000080 <.do_copy_data_start>:
  80:	a0 36       	cpi	r26, 0x60	; 96
  82:	b1 07       	cpc	r27, r17
  84:	d9 f7       	brne	.-10     	; 0x7c <.do_copy_data_loop>

00000086 <__do_clear_bss>:
  86:	10 e0       	ldi	r17, 0x00	; 0
  88:	a0 e6       	ldi	r26, 0x60	; 96
  8a:	b0 e0       	ldi	r27, 0x00	; 0
  8c:	01 c0       	rjmp	.+2      	; 0x90 <.do_clear_bss_start>

0000008e <.do_clear_bss_loop>:
  8e:	1d 92       	st	X+, r1

00000090 <.do_clear_bss_start>:
  90:	a8 36       	cpi	r26, 0x68	; 104
  92:	b1 07       	cpc	r27, r17
  94:	e1 f7       	brne	.-8      	; 0x8e <.do_clear_bss_loop>
  96:	0c 94 80 00 	jmp	0x100 <main>

0000009a <__bad_interrupt>:
  9a:	0c 94 00 00 	jmp	0x0 <__vectors>

0000009e <SmgScan>:
unsigned char DisBuffer[8];


void SmgScan(void)
{
  9e:	0f 93       	push	r16
  a0:	1f 93       	push	r17
  a2:	cf 93       	push	r28
  a4:	df 93       	push	r29
  a6:	01 e0       	ldi	r16, 0x01	; 1
  a8:	10 e0       	ldi	r17, 0x00	; 0
  aa:	a0 ea       	ldi	r26, 0xA0	; 160
  ac:	bf e0       	ldi	r27, 0x0F	; 15
  ae:	c0 e0       	ldi	r28, 0x00	; 0
  b0:	d0 e0       	ldi	r29, 0x00	; 0
  b2:	60 e6       	ldi	r22, 0x60	; 96
  b4:	70 e0       	ldi	r23, 0x00	; 0
  b6:	20 e0       	ldi	r18, 0x00	; 0
  b8:	30 e0       	ldi	r19, 0x00	; 0
  ba:	47 e0       	ldi	r20, 0x07	; 7
	unsigned char i=0;
	for(i=0;i<8;i++)
	{
		PORTB = pgm_read_byte(&SegCode[DisBuffer[i]]);/* Output the Segment code */
  bc:	fb 01       	movw	r30, r22
  be:	81 91       	ld	r24, Z+
  c0:	bf 01       	movw	r22, r30
  c2:	e8 2f       	mov	r30, r24
  c4:	ff 27       	eor	r31, r31
  c6:	ec 5a       	subi	r30, 0xAC	; 172
  c8:	ff 4f       	sbci	r31, 0xFF	; 255
  ca:	84 91       	lpm	r24, Z
  cc:	88 bb       	out	0x18, r24	; 24
		PORTA|= (1<<PA4); /* Disable the Latch pin to get the new data */ 
  ce:	dc 9a       	sbi	0x1b, 4	; 27
		PORTA&=~(1<<PA4); /* Enable the latch pin to keeping the data */
  d0:	dc 98       	cbi	0x1b, 4	; 27
				
		PORTB = (1<<i);    /* Select one 7-segment display */ 
  d2:	c8 01       	movw	r24, r16
  d4:	02 2e       	mov	r0, r18
  d6:	02 c0       	rjmp	.+4      	; 0xdc <SmgScan+0x3e>
  d8:	88 0f       	add	r24, r24
  da:	99 1f       	adc	r25, r25
  dc:	0a 94       	dec	r0
  de:	e2 f7       	brpl	.-8      	; 0xd8 <SmgScan+0x3a>
  e0:	88 bb       	out	0x18, r24	; 24
		PORTA|= (1<<PA5); /* Disable the Latch pin to get the new data */ 
  e2:	dd 9a       	sbi	0x1b, 5	; 27
		PORTA&=~(1<<PA5); /* Enable the latch pin to keeping the data */
  e4:	dd 98       	cbi	0x1b, 5	; 27
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  e6:	cd 01       	movw	r24, r26
  e8:	01 97       	sbiw	r24, 0x01	; 1
  ea:	f1 f7       	brne	.-4      	; 0xe8 <SmgScan+0x4a>
  ec:	41 50       	subi	r20, 0x01	; 1
  ee:	2f 5f       	subi	r18, 0xFF	; 255
  f0:	3f 4f       	sbci	r19, 0xFF	; 255
  f2:	47 ff       	sbrs	r20, 7
  f4:	e3 cf       	rjmp	.-58     	; 0xbc <SmgScan+0x1e>
  f6:	df 91       	pop	r29
  f8:	cf 91       	pop	r28
  fa:	1f 91       	pop	r17
  fc:	0f 91       	pop	r16
  fe:	08 95       	ret

00000100 <main>:

		_delay_ms(2);     /* A short delay to make it lighten for a short time */
	}
}

int main(void)
{
 100:	cf e5       	ldi	r28, 0x5F	; 95
 102:	d4 e0       	ldi	r29, 0x04	; 4
 104:	de bf       	out	0x3e, r29	; 62
 106:	cd bf       	out	0x3d, r28	; 61
	unsigned int Count=0;
 108:	c0 e0       	ldi	r28, 0x00	; 0
 10a:	d0 e0       	ldi	r29, 0x00	; 0

	/* Set Smg LE pin as output , databus as output */
	DDRA |=(1<<PA4)|(1<<PA5)|(1<<PA6); 
 10c:	8a b3       	in	r24, 0x1a	; 26
 10e:	80 67       	ori	r24, 0x70	; 112
 110:	8a bb       	out	0x1a, r24	; 26
	DDRB  = 0xFF;
 112:	8f ef       	ldi	r24, 0xFF	; 255
 114:	87 bb       	out	0x17, r24	; 23
	/* Turn off the led */
	PORTB = 0xFF;
 116:	88 bb       	out	0x18, r24	; 24
	PORTA|= (1<<PA6);
 118:	de 9a       	sbi	0x1b, 6	; 27
	PORTA&=~(1<<PA6);
 11a:	de 98       	cbi	0x1b, 6	; 27

	while(1)
	{
		Count++;
 11c:	21 96       	adiw	r28, 0x01	; 1

		DisBuffer[0]=0;
 11e:	10 92 60 00 	sts	0x0060, r1
		DisBuffer[1]=0;
 122:	10 92 61 00 	sts	0x0061, r1
		DisBuffer[2]=0;
 126:	10 92 62 00 	sts	0x0062, r1
		DisBuffer[3]=Count/10000%10;
 12a:	ce 01       	movw	r24, r28
 12c:	60 e1       	ldi	r22, 0x10	; 16
 12e:	77 e2       	ldi	r23, 0x27	; 39
 130:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 134:	cb 01       	movw	r24, r22
 136:	6a e0       	ldi	r22, 0x0A	; 10
 138:	70 e0       	ldi	r23, 0x00	; 0
 13a:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 13e:	80 93 63 00 	sts	0x0063, r24
		DisBuffer[4]=Count/1000%10;
 142:	ce 01       	movw	r24, r28
 144:	68 ee       	ldi	r22, 0xE8	; 232
 146:	73 e0       	ldi	r23, 0x03	; 3
 148:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 14c:	cb 01       	movw	r24, r22
 14e:	6a e0       	ldi	r22, 0x0A	; 10
 150:	70 e0       	ldi	r23, 0x00	; 0
 152:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 156:	80 93 64 00 	sts	0x0064, r24
		DisBuffer[5]=Count/100%10;
 15a:	ce 01       	movw	r24, r28
 15c:	64 e6       	ldi	r22, 0x64	; 100
 15e:	70 e0       	ldi	r23, 0x00	; 0
 160:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 164:	cb 01       	movw	r24, r22
 166:	6a e0       	ldi	r22, 0x0A	; 10
 168:	70 e0       	ldi	r23, 0x00	; 0
 16a:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 16e:	80 93 65 00 	sts	0x0065, r24
		DisBuffer[6]=Count/10%10;
 172:	ce 01       	movw	r24, r28
 174:	6a e0       	ldi	r22, 0x0A	; 10
 176:	70 e0       	ldi	r23, 0x00	; 0
 178:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 17c:	cb 01       	movw	r24, r22
 17e:	6a e0       	ldi	r22, 0x0A	; 10
 180:	70 e0       	ldi	r23, 0x00	; 0
 182:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 186:	80 93 66 00 	sts	0x0066, r24
		DisBuffer[7]=Count/1%10;
 18a:	ce 01       	movw	r24, r28
 18c:	6a e0       	ldi	r22, 0x0A	; 10
 18e:	70 e0       	ldi	r23, 0x00	; 0
 190:	0e 94 cf 00 	call	0x19e <__udivmodhi4>
 194:	80 93 67 00 	sts	0x0067, r24
		
		SmgScan();
 198:	0e 94 4f 00 	call	0x9e <SmgScan>
 19c:	bf cf       	rjmp	.-130    	; 0x11c <main+0x1c>

0000019e <__udivmodhi4>:
 19e:	aa 1b       	sub	r26, r26
 1a0:	bb 1b       	sub	r27, r27
 1a2:	51 e1       	ldi	r21, 0x11	; 17
 1a4:	07 c0       	rjmp	.+14     	; 0x1b4 <__udivmodhi4_ep>

000001a6 <__udivmodhi4_loop>:
 1a6:	aa 1f       	adc	r26, r26
 1a8:	bb 1f       	adc	r27, r27
 1aa:	a6 17       	cp	r26, r22
 1ac:	b7 07       	cpc	r27, r23
 1ae:	10 f0       	brcs	.+4      	; 0x1b4 <__udivmodhi4_ep>
 1b0:	a6 1b       	sub	r26, r22
 1b2:	b7 0b       	sbc	r27, r23

000001b4 <__udivmodhi4_ep>:
 1b4:	88 1f       	adc	r24, r24
 1b6:	99 1f       	adc	r25, r25
 1b8:	5a 95       	dec	r21
 1ba:	a9 f7       	brne	.-22     	; 0x1a6 <__udivmodhi4_loop>
 1bc:	80 95       	com	r24
 1be:	90 95       	com	r25
 1c0:	bc 01       	movw	r22, r24
 1c2:	cd 01       	movw	r24, r26
 1c4:	08 95       	ret

⌨️ 快捷键说明

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