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

📄 test.lst

📁 用ICC编写的程序包括SPI
💻 LST
字号:
__start:
__text_start:
    002F E5CF      LDI	R28,0x5F
    0030 E0D4      LDI	R29,4
    0031 BFCD      OUT	0x3D,R28
    0032 BFDE      OUT	0x3E,R29
    0033 51C0      SUBI	R28,0x10
    0034 40D0      SBCI	R29,0
    0035 EA0A      LDI	R16,0xAA
    0036 8308      STD	Y+0,R16
    0037 2400      CLR	R0
    0038 E6E5      LDI	R30,0x65
    0039 E0F0      LDI	R31,0
    003A E010      LDI	R17,0
    003B 36E5      CPI	R30,0x65
    003C 07F1      CPC	R31,R17
    003D F011      BEQ	0x0040
    003E 9201      ST	R0,Z+
    003F CFFB      RJMP	0x003B
    0040 8300      STD	Z+0,R16
    0041 E5E8      LDI	R30,0x58
    0042 E0F0      LDI	R31,0
    0043 E6A0      LDI	R26,0x60
    0044 E0B0      LDI	R27,0
    0045 E010      LDI	R17,0
    0046 35ED      CPI	R30,0x5D
    0047 07F1      CPC	R31,R17
    0048 F021      BEQ	0x004D
    0049 95C8      LPM
    004A 9631      ADIW	R30,1
    004B 920D      ST	R0,X+
    004C CFF9      RJMP	0x0046
    004D 940E0066  CALL	_main
_exit:
    004F CFFF      RJMP	_exit
FILE: F:\IccAvr_Pro\test.c
(0001) //ICC-AVR application builder : 2005-2-20 上午 10:39:44
(0002) // Target : M16
(0003) // Crystal: 8.0000Mhz
(0004) 
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007) 
(0008) void port_init(void)
(0009) {
(0010)  PORTA = 0xFF;
_port_init:
    0050 EF8F      LDI	R24,0xFF
    0051 BB8B      OUT	0x1B,R24
(0011)  DDRA  = 0x00;
    0052 2422      CLR	R2
    0053 BA2A      OUT	0x1A,R2
(0012)  PORTB = 0xFF;
    0054 BB88      OUT	0x18,R24
(0013)  DDRB  = 0x00;
    0055 BA27      OUT	0x17,R2
(0014)  PORTC = 0xFF; //m103 output only
    0056 BB85      OUT	0x15,R24
(0015)  DDRC  = 0x00;
    0057 BA24      OUT	0x14,R2
(0016)  PORTD = 0xFF;
    0058 BB82      OUT	0x12,R24
(0017)  DDRD  = 0x00;
    0059 BA21      OUT	0x11,R2
(0018) }
    005A 9508      RET
(0019) 
(0020) #pragma interrupt_handler int0_isr:2
(0021) void int0_isr(void)
(0022) {
(0023)  //external interupt on INT0
(0024) }
_int0_isr:
    005B 9518      RETI
(0025) 
(0026) #pragma interrupt_handler int1_isr:3
(0027) void int1_isr(void)
(0028) {
(0029)  //external interupt on INT1
(0030) }
_int1_isr:
    005C 9518      RETI
(0031) 
(0032) //call this routine to initialise all peripherals
(0033) void init_devices(void)
(0034) {
(0035)  //stop errant interrupts until set up
(0036)  CLI(); //disable all interrupts
_init_devices:
    005D 94F8      BCLR	7
(0037)  port_init();
    005E DFF1      RCALL	_port_init
(0038) 
(0039)  MCUCR = 0x00;
    005F 2422      CLR	R2
    0060 BE25      OUT	0x35,R2
(0040)  GICR  = 0xC0;
    0061 EC80      LDI	R24,0xC0
    0062 BF8B      OUT	0x3B,R24
(0041)  TIMSK = 0x00; //timer interrupt sources
    0063 BE29      OUT	0x39,R2
(0042)  SEI(); //re-enable interrupts
    0064 9478      BSET	7
(0043)  //all peripherals are now initialised
(0044) }
    0065 9508      RET
_main:
  te                   --> R20
  t                    --> R20
  pc                   --> R20
  test                 --> Y+0
    0066 9724      SBIW	R28,4
(0045)   const struct p{
(0046)  unsigned char t1;
(0047)  unsigned  int t2;
(0048)  };
(0049) 
(0050) struct	p	a1={10,1000};
(0051) struct  p	*pa1=&a1;
(0052)  
(0053)  void main()
(0054)  {unsigned char t=a1.t1;
    0067 91400060  LDS	R20,__idata_end+3
(0055)   unsigned int te=a1.t2;
    0069 91400061  LDS	R20,0x61
    006B 91500062  LDS	R21,0x62
(0056)   unsigned char test[4]={0,0,0,0};
    006D E584      LDI	R24,0x54
    006E E090      LDI	R25,0
    006F 01FE      MOVW	R30,R28
    0070 E004      LDI	R16,4
    0071 E010      LDI	R17,0
    0072 93FA      ST	R31,-Y
    0073 93EA      ST	R30,-Y
    0074 939A      ST	R25,-Y
    0075 938A      ST	R24,-Y
    0076 940E0085  CALL	asgncblk
(0057)   unsigned char *pc=(unsigned char *)(&a1);
    0078 E640      LDI	R20,0x60
    0079 E050      LDI	R21,0
(0058)   test[0]=*pc++;
    007A 01FA      MOVW	R30,R20
    007B 9021      LD	R2,Z+
    007C 8228      STD	Y+0,R2
(0059)   test[1]=*pc++;
    007D 9021      LD	R2,Z+
    007E 8229      STD	Y+1,R2
(0060)   test[2]=*pc++;
    007F 9021      LD	R2,Z+
    0080 01AF      MOVW	R20,R30
    0081 822A      STD	Y+2,R2
(0061)    
(0062)  
(0063)  init_devices();
    0082 DFDA      RCALL	_init_devices
(0064)  }
FILE: <library>
    0083 9624      ADIW	R28,4
    0084 9508      RET
asgncblk:
    0085 93AA      ST	R26,-Y
    0086 93BA      ST	R27,-Y
    0087 93EA      ST	R30,-Y
    0088 93FA      ST	R31,-Y
    0089 920A      ST	R0,-Y
    008A 81AF      LDD	R26,Y+7
    008B 85B8      LDD	R27,Y+8
    008C 81ED      LDD	R30,Y+5
    008D 81FE      LDD	R31,Y+6
    008E 3000      CPI	R16,0
    008F 0701      CPC	R16,R17
    0090 F031      BEQ	0x0097
    0091 95C8      LPM
    0092 920D      ST	R0,X+
    0093 9631      ADIW	R30,1
    0094 5001      SUBI	R16,1
    0095 4010      SBCI	R17,0
    0096 CFF7      RJMP	0x008E
    0097 9009      LD	R0,Y+
    0098 91F9      LD	R31,Y+
    0099 91E9      LD	R30,Y+
    009A 91B9      LD	R27,Y+
    009B 91A9      LD	R26,Y+
    009C 9624      ADIW	R28,4
    009D 9508      RET

⌨️ 快捷键说明

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