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

📄 main.lss

📁 这是一个164的C程序
💻 LSS
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000230  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000000c  00800060  00000230  000002a4  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .stab         00000378  00000000  00000000  000002b0  2**2
                  CONTENTS, READONLY, DEBUGGING
  3 .stabstr      00000071  00000000  00000000  00000628  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_aranges 00000020  00000000  00000000  00000699  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_pubnames 00000037  00000000  00000000  000006b9  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_info   000001e1  00000000  00000000  000006f0  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_abbrev 00000132  00000000  00000000  000008d1  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_line   000001e7  00000000  00000000  00000a03  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_frame  00000040  00000000  00000000  00000bec  2**2
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_str    000000c7  00000000  00000000  00000c2c  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_loc    00000056  00000000  00000000  00000cf3  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   8:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  10:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  14:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  18:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  1c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  20:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  24:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  28:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  2c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  30:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  34:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  38:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  3c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  40:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  44:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  48:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  4c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  50:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d4 e0       	ldi	r29, 0x04	; 4
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	e0 e3       	ldi	r30, 0x30	; 48
  68:	f2 e0       	ldi	r31, 0x02	; 2
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

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

00000070 <.do_copy_data_start>:
  70:	ac 36       	cpi	r26, 0x6C	; 108
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	ac e6       	ldi	r26, 0x6C	; 108
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	ac 36       	cpi	r26, 0x6C	; 108
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0e 94 76 00 	call	0xec	; 0xec <main>
  8a:	0c 94 17 01 	jmp	0x22e	; 0x22e <_exit>

0000008e <__bad_interrupt>:
  8e:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>

00000092 <shift>:
char led[]={0x11,0xD7,0x32,0x92,0xD4,0x98,0x18,0xD3,0x10,0x90,0xff};  // 0 1 2 3 4 5 6 7 8 9 灭

//======================   移位子程序  ==================
void shift(uchar b)
{
  92:	e8 2f       	mov	r30, r24
  94:	ff 27       	eor	r31, r31
  96:	e0 5a       	subi	r30, 0xA0	; 160
  98:	ff 4f       	sbci	r31, 0xFF	; 255
  9a:	80 81       	ld	r24, Z
   uchar i;
   b=led[b];
   if (b==0xff)
  9c:	8f 3f       	cpi	r24, 0xFF	; 255
  9e:	09 f4       	brne	.+2      	; 0xa2 <shift+0x10>
  a0:	8e ef       	ldi	r24, 0xFE	; 254
      b=b&0xfe;
   PORTA=(0<<PA2);
  a2:	1b ba       	out	0x1b, r1	; 27
  a4:	20 e0       	ldi	r18, 0x00	; 0
  a6:	30 e0       	ldi	r19, 0x00	; 0
  a8:	e8 2f       	mov	r30, r24
  aa:	ff 27       	eor	r31, r31
  ac:	41 e0       	ldi	r20, 0x01	; 1
   for(i=0;i<8;i++)
     {
	 if ((b<<i) & 0x80)
  ae:	cf 01       	movw	r24, r30
  b0:	02 2e       	mov	r0, r18
  b2:	02 c0       	rjmp	.+4      	; 0xb8 <shift+0x26>
  b4:	88 0f       	add	r24, r24
  b6:	99 1f       	adc	r25, r25
  b8:	0a 94       	dec	r0
  ba:	e2 f7       	brpl	.-8      	; 0xb4 <shift+0x22>
  bc:	87 ff       	sbrs	r24, 7
  be:	02 c0       	rjmp	.+4      	; 0xc4 <shift+0x32>
	    PORTA = (1<<PA0);
  c0:	4b bb       	out	0x1b, r20	; 27
  c2:	01 c0       	rjmp	.+2      	; 0xc6 <shift+0x34>
		
	 else
        PORTA = (0<<PA0);
  c4:	1b ba       	out	0x1b, r1	; 27
		
	  PORTA = PORTA|(1<<PA1);
  c6:	d9 9a       	sbi	0x1b, 1	; 27
	  PORTA = PORTA&(0<<PA1);	 
  c8:	8b b3       	in	r24, 0x1b	; 27
  ca:	1b ba       	out	0x1b, r1	; 27
  cc:	2f 5f       	subi	r18, 0xFF	; 255
  ce:	3f 4f       	sbci	r19, 0xFF	; 255
  d0:	28 30       	cpi	r18, 0x08	; 8
  d2:	31 05       	cpc	r19, r1
  d4:	61 f7       	brne	.-40     	; 0xae <shift+0x1c>
  d6:	08 95       	ret

000000d8 <delay>:
   }
}

//====================  延时程序  ======================
void delay(void)
{
  d8:	20 e0       	ldi	r18, 0x00	; 0
  da:	e0 ed       	ldi	r30, 0xD0	; 208
  dc:	f7 e0       	ldi	r31, 0x07	; 7
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  de:	cf 01       	movw	r24, r30
  e0:	01 97       	sbiw	r24, 0x01	; 1
  e2:	f1 f7       	brne	.-4      	; 0xe0 <delay+0x8>
     uchar i=0;
	 for (i=0; i<125; i++) 
  e4:	2f 5f       	subi	r18, 0xFF	; 255
  e6:	2d 37       	cpi	r18, 0x7D	; 125
  e8:	d1 f7       	brne	.-12     	; 0xde <delay+0x6>
  ea:	08 95       	ret

000000ec <main>:
	 _delay_ms(1);
}


//=========================   主函数    ================
int main(void)
{
  ec:	af 92       	push	r10
  ee:	bf 92       	push	r11
  f0:	cf 92       	push	r12
  f2:	df 92       	push	r13
  f4:	ef 92       	push	r14
  f6:	ff 92       	push	r15
  f8:	0f 93       	push	r16
  fa:	1f 93       	push	r17
  fc:	cf 93       	push	r28
  fe:	df 93       	push	r29
   int i=0;
   int sec=0,min=0,hour=0;
   PORTA=0XFF;
 100:	8f ef       	ldi	r24, 0xFF	; 255
 102:	8b bb       	out	0x1b, r24	; 27
   DDRA=0Xff;
 104:	8a bb       	out	0x1a, r24	; 26
 106:	c0 e0       	ldi	r28, 0x00	; 0
 108:	d0 e0       	ldi	r29, 0x00	; 0
 
   // 清除乱码  
   for (i=0; i<8; i++)
   {
	 shift(10);	   
 10a:	8a e0       	ldi	r24, 0x0A	; 10
 10c:	0e 94 49 00 	call	0x92	; 0x92 <shift>
 110:	21 96       	adiw	r28, 0x01	; 1
 112:	c8 30       	cpi	r28, 0x08	; 8
 114:	d1 05       	cpc	r29, r1
 116:	c9 f7       	brne	.-14     	; 0x10a <main+0x1e>
 118:	ee 24       	eor	r14, r14
 11a:	ff 24       	eor	r15, r15
   }
   
   //开始显示数据
   while (1)
   {
    for (hour=0;  hour<24; hour++)
	{
       shift(hour%10);
 11c:	c7 01       	movw	r24, r14
 11e:	6a e0       	ldi	r22, 0x0A	; 10
 120:	70 e0       	ldi	r23, 0x00	; 0
 122:	0e 94 f0 00 	call	0x1e0	; 0x1e0 <__divmodhi4>
 126:	a8 2e       	mov	r10, r24
 128:	0e 94 49 00 	call	0x92	; 0x92 <shift>
       shift(hour/10);
 12c:	c7 01       	movw	r24, r14
 12e:	6a e0       	ldi	r22, 0x0A	; 10
 130:	70 e0       	ldi	r23, 0x00	; 0
 132:	0e 94 f0 00 	call	0x1e0	; 0x1e0 <__divmodhi4>
 136:	cb 01       	movw	r24, r22
 138:	b6 2e       	mov	r11, r22
 13a:	0e 94 49 00 	call	0x92	; 0x92 <shift>
       shift(10);
 13e:	8a e0       	ldi	r24, 0x0A	; 10
 140:	0e 94 49 00 	call	0x92	; 0x92 <shift>
 144:	00 e0       	ldi	r16, 0x00	; 0
 146:	10 e0       	ldi	r17, 0x00	; 0
	   
	   for (min=0; min<60; min++)
	   {
         shift(min%10);
 148:	c8 01       	movw	r24, r16
 14a:	6a e0       	ldi	r22, 0x0A	; 10
 14c:	70 e0       	ldi	r23, 0x00	; 0
 14e:	0e 94 f0 00 	call	0x1e0	; 0x1e0 <__divmodhi4>
 152:	c8 2e       	mov	r12, r24
 154:	0e 94 49 00 	call	0x92	; 0x92 <shift>
         shift(min/10);
 158:	c8 01       	movw	r24, r16
 15a:	6a e0       	ldi	r22, 0x0A	; 10
 15c:	70 e0       	ldi	r23, 0x00	; 0
 15e:	0e 94 f0 00 	call	0x1e0	; 0x1e0 <__divmodhi4>
 162:	cb 01       	movw	r24, r22
 164:	d6 2e       	mov	r13, r22
 166:	0e 94 49 00 	call	0x92	; 0x92 <shift>
         shift(10);
 16a:	8a e0       	ldi	r24, 0x0A	; 10
 16c:	0e 94 49 00 	call	0x92	; 0x92 <shift>
 170:	c0 e0       	ldi	r28, 0x00	; 0
 172:	d0 e0       	ldi	r29, 0x00	; 0
		 
	     for (sec=0; sec<60; sec++)
	     {
		   shift(hour%10);
 174:	8a 2d       	mov	r24, r10
 176:	0e 94 49 00 	call	0x92	; 0x92 <shift>
           shift(hour/10);
 17a:	8b 2d       	mov	r24, r11
 17c:	0e 94 49 00 	call	0x92	; 0x92 <shift>
           shift(10);
 180:	8a e0       	ldi	r24, 0x0A	; 10
 182:	0e 94 49 00 	call	0x92	; 0x92 <shift>
           shift(min%10);
 186:	8c 2d       	mov	r24, r12
 188:	0e 94 49 00 	call	0x92	; 0x92 <shift>
           shift(min/10);
 18c:	8d 2d       	mov	r24, r13
 18e:	0e 94 49 00 	call	0x92	; 0x92 <shift>
           shift(10);
 192:	8a e0       	ldi	r24, 0x0A	; 10
 194:	0e 94 49 00 	call	0x92	; 0x92 <shift>
           shift(sec%10);
 198:	ce 01       	movw	r24, r28
 19a:	6a e0       	ldi	r22, 0x0A	; 10
 19c:	70 e0       	ldi	r23, 0x00	; 0
 19e:	0e 94 f0 00 	call	0x1e0	; 0x1e0 <__divmodhi4>
 1a2:	0e 94 49 00 	call	0x92	; 0x92 <shift>
           shift(sec/10);
 1a6:	ce 01       	movw	r24, r28
 1a8:	6a e0       	ldi	r22, 0x0A	; 10
 1aa:	70 e0       	ldi	r23, 0x00	; 0
 1ac:	0e 94 f0 00 	call	0x1e0	; 0x1e0 <__divmodhi4>
 1b0:	cb 01       	movw	r24, r22
 1b2:	0e 94 49 00 	call	0x92	; 0x92 <shift>
	       delay();
 1b6:	0e 94 6c 00 	call	0xd8	; 0xd8 <delay>
 1ba:	21 96       	adiw	r28, 0x01	; 1
 1bc:	cc 33       	cpi	r28, 0x3C	; 60
 1be:	d1 05       	cpc	r29, r1
 1c0:	c9 f6       	brne	.-78     	; 0x174 <main+0x88>
 1c2:	0f 5f       	subi	r16, 0xFF	; 255
 1c4:	1f 4f       	sbci	r17, 0xFF	; 255
 1c6:	0c 33       	cpi	r16, 0x3C	; 60
 1c8:	11 05       	cpc	r17, r1
 1ca:	09 f0       	breq	.+2      	; 0x1ce <main+0xe2>
 1cc:	bd cf       	rjmp	.-134    	; 0x148 <main+0x5c>
 1ce:	08 94       	sec
 1d0:	e1 1c       	adc	r14, r1
 1d2:	f1 1c       	adc	r15, r1
 1d4:	88 e1       	ldi	r24, 0x18	; 24
 1d6:	e8 16       	cp	r14, r24
 1d8:	f1 04       	cpc	r15, r1
 1da:	09 f0       	breq	.+2      	; 0x1de <main+0xf2>
 1dc:	9f cf       	rjmp	.-194    	; 0x11c <main+0x30>
 1de:	9c cf       	rjmp	.-200    	; 0x118 <main+0x2c>

000001e0 <__divmodhi4>:
 1e0:	97 fb       	bst	r25, 7
 1e2:	09 2e       	mov	r0, r25
 1e4:	07 26       	eor	r0, r23
 1e6:	0a d0       	rcall	.+20     	; 0x1fc <__divmodhi4_neg1>
 1e8:	77 fd       	sbrc	r23, 7
 1ea:	04 d0       	rcall	.+8      	; 0x1f4 <__divmodhi4_neg2>
 1ec:	0c d0       	rcall	.+24     	; 0x206 <__udivmodhi4>
 1ee:	06 d0       	rcall	.+12     	; 0x1fc <__divmodhi4_neg1>
 1f0:	00 20       	and	r0, r0
 1f2:	1a f4       	brpl	.+6      	; 0x1fa <__divmodhi4_exit>

000001f4 <__divmodhi4_neg2>:
 1f4:	70 95       	com	r23
 1f6:	61 95       	neg	r22
 1f8:	7f 4f       	sbci	r23, 0xFF	; 255

000001fa <__divmodhi4_exit>:
 1fa:	08 95       	ret

000001fc <__divmodhi4_neg1>:
 1fc:	f6 f7       	brtc	.-4      	; 0x1fa <__divmodhi4_exit>
 1fe:	90 95       	com	r25
 200:	81 95       	neg	r24
 202:	9f 4f       	sbci	r25, 0xFF	; 255
 204:	08 95       	ret

00000206 <__udivmodhi4>:
 206:	aa 1b       	sub	r26, r26
 208:	bb 1b       	sub	r27, r27
 20a:	51 e1       	ldi	r21, 0x11	; 17
 20c:	07 c0       	rjmp	.+14     	; 0x21c <__udivmodhi4_ep>

0000020e <__udivmodhi4_loop>:
 20e:	aa 1f       	adc	r26, r26
 210:	bb 1f       	adc	r27, r27
 212:	a6 17       	cp	r26, r22
 214:	b7 07       	cpc	r27, r23
 216:	10 f0       	brcs	.+4      	; 0x21c <__udivmodhi4_ep>
 218:	a6 1b       	sub	r26, r22
 21a:	b7 0b       	sbc	r27, r23

0000021c <__udivmodhi4_ep>:
 21c:	88 1f       	adc	r24, r24
 21e:	99 1f       	adc	r25, r25
 220:	5a 95       	dec	r21
 222:	a9 f7       	brne	.-22     	; 0x20e <__udivmodhi4_loop>
 224:	80 95       	com	r24
 226:	90 95       	com	r25
 228:	bc 01       	movw	r22, r24
 22a:	cd 01       	movw	r24, r26
 22c:	08 95       	ret

0000022e <_exit>:
 22e:	ff cf       	rjmp	.-2      	; 0x22e <_exit>

⌨️ 快捷键说明

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