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

📄 test.lis

📁 用ICC编写的程序包括SPI
💻 LIS
字号:
                        .module test.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\IccAvr_Pro\test.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2005-2-20 上午 10:39:44
 0000           ; // Target : M16
 0000           ; // Crystal: 8.0000Mhz
 0000           ; 
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  PORTA = 0xFF;
 0000 8FEF              ldi R24,255
 0002 8BBB              out 0x1b,R24
 0004                   .dbline 11
 0004           ;  DDRA  = 0x00;
 0004 2224              clr R2
 0006 2ABA              out 0x1a,R2
 0008                   .dbline 12
 0008           ;  PORTB = 0xFF;
 0008 88BB              out 0x18,R24
 000A                   .dbline 13
 000A           ;  DDRB  = 0x00;
 000A 27BA              out 0x17,R2
 000C                   .dbline 14
 000C           ;  PORTC = 0xFF; //m103 output only
 000C 85BB              out 0x15,R24
 000E                   .dbline 15
 000E           ;  DDRC  = 0x00;
 000E 24BA              out 0x14,R2
 0010                   .dbline 16
 0010           ;  PORTD = 0xFF;
 0010 82BB              out 0x12,R24
 0012                   .dbline 17
 0012           ;  DDRD  = 0x00;
 0012 21BA              out 0x11,R2
 0014                   .dbline -2
 0014                   .dbline 18
 0014           ; }
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 0C940B00          jmp _int0_isr
                        .area text(rom, con, rel)
 0016                   .dbfile F:\IccAvr_Pro\test.c
 0016                   .dbfunc e int0_isr _int0_isr fV
                        .even
 0016           _int0_isr::
 0016                   .dbline -1
 0016                   .dbline 22
 0016           ; 
 0016           ; #pragma interrupt_handler int0_isr:2
 0016           ; void int0_isr(void)
 0016           ; {
 0016                   .dbline -2
 0016                   .dbline 24
 0016           ;  //external interupt on INT0
 0016           ; }
 0016           L2:
 0016                   .dbline 0 ; func end
 0016 1895              reti
 0018                   .dbend
                        .area vector(rom, abs)
                        .org 8
 0008 0C940C00          jmp _int1_isr
                        .area text(rom, con, rel)
 0018                   .dbfile F:\IccAvr_Pro\test.c
 0018                   .dbfunc e int1_isr _int1_isr fV
                        .even
 0018           _int1_isr::
 0018                   .dbline -1
 0018                   .dbline 28
 0018           ; 
 0018           ; #pragma interrupt_handler int1_isr:3
 0018           ; void int1_isr(void)
 0018           ; {
 0018                   .dbline -2
 0018                   .dbline 30
 0018           ;  //external interupt on INT1
 0018           ; }
 0018           L3:
 0018                   .dbline 0 ; func end
 0018 1895              reti
 001A                   .dbend
 001A                   .dbfunc e init_devices _init_devices fV
                        .even
 001A           _init_devices::
 001A                   .dbline -1
 001A                   .dbline 34
 001A           ; 
 001A           ; //call this routine to initialise all peripherals
 001A           ; void init_devices(void)
 001A           ; {
 001A                   .dbline 36
 001A           ;  //stop errant interrupts until set up
 001A           ;  CLI(); //disable all interrupts
 001A F894              cli
 001C                   .dbline 37
 001C           ;  port_init();
 001C F1DF              xcall _port_init
 001E                   .dbline 39
 001E           ; 
 001E           ;  MCUCR = 0x00;
 001E 2224              clr R2
 0020 25BE              out 0x35,R2
 0022                   .dbline 40
 0022           ;  GICR  = 0xC0;
 0022 80EC              ldi R24,192
 0024 8BBF              out 0x3b,R24
 0026                   .dbline 41
 0026           ;  TIMSK = 0x00; //timer interrupt sources
 0026 29BE              out 0x39,R2
 0028                   .dbline 42
 0028           ;  SEI(); //re-enable interrupts
 0028 7894              sei
 002A                   .dbline -2
 002A                   .dbline 44
 002A           ;  //all peripherals are now initialised
 002A           ; }
 002A           L4:
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile F:\IccAvr_Pro\test.c
 0000           _a1::
 0000                   .blkb 1
                        .area idata
 0000 0A                .byte 10
                        .area data(ram, con, rel)
 0001                   .dbfile F:\IccAvr_Pro\test.c
 0001                   .blkb 2
                        .area idata
 0001 E803              .word 1000
                        .area data(ram, con, rel)
 0003                   .dbfile F:\IccAvr_Pro\test.c
 0003                   .dbstruct 0 3 p
 0003                   .dbfield 0 t1 c
 0003                   .dbfield 1 t2 i
 0003                   .dbend
 0003                   .dbsym e a1 _a1 S[p]
 0003           _pa1::
 0003                   .blkw 1
                        .area idata
 0003 0000              .word _a1
                        .area data(ram, con, rel)
 0005                   .dbfile F:\IccAvr_Pro\test.c
 0005                   .dbsym e pa1 _pa1 pS[p]
                        .area lit(rom, con, rel)
 0000           L7:
 0000 0000              .byte 0,0
 0002 0000              .byte 0,0
                        .area text(rom, con, rel)
 002C                   .dbfile F:\IccAvr_Pro\test.c
 002C                   .dbfunc e main _main fV
 002C           ;             te -> R20,R21
 002C           ;              t -> R20
 002C           ;             pc -> R20,R21
 002C           ;           test -> y+0
                        .even
 002C           _main::
 002C 2497              sbiw R28,4
 002E                   .dbline -1
 002E                   .dbline 54
 002E           ;   const struct p{
 002E           ;  unsigned char t1;
 002E           ;  unsigned  int t2;
 002E           ;  };
 002E           ; 
 002E           ; struct        p       a1={10,1000};
 002E           ; struct  p     *pa1=&a1;
 002E           ;  
 002E           ;  void main()
 002E           ;  {unsigned char t=a1.t1;
 002E                   .dbline 54
 002E 40910000          lds R20,_a1
 0032                   .dbline 55
 0032           ;   unsigned int te=a1.t2;
 0032 40910100          lds R20,_a1+1
 0036 50910200          lds R21,_a1+1+1
 003A                   .dbline 56
 003A           ;   unsigned char test[4]={0,0,0,0};
 003A 80E0              ldi R24,<L7
 003C 90E0              ldi R25,>L7
 003E FE01              movw R30,R28
 0040 04E0              ldi R16,4
 0042 10E0              ldi R17,0
 0044 FA93              st -y,R31
 0046 EA93              st -y,R30
 0048 9A93              st -y,R25
 004A 8A93              st -y,R24
 004C 0E940000          xcall asgncblk
 0050                   .dbline 57
 0050           ;   unsigned char *pc=(unsigned char *)(&a1);
 0050 40E0              ldi R20,<_a1
 0052 50E0              ldi R21,>_a1
 0054                   .dbline 58
 0054           ;   test[0]=*pc++;
 0054 FA01              movw R30,R20
 0056 2190              ld R2,Z+
 0058 2882              std y+0,R2
 005A                   .dbline 59
 005A           ;   test[1]=*pc++;
 005A 2190              ld R2,Z+
 005C 2982              std y+1,R2
 005E                   .dbline 60
 005E           ;   test[2]=*pc++;
 005E 2190              ld R2,Z+
 0060 AF01              movw R20,R30
 0062 2A82              std y+2,R2
 0064                   .dbline 63
 0064           ;    
 0064           ;  
 0064           ;  init_devices();
 0064 DADF              xcall _init_devices
 0066                   .dbline -2
 0066                   .dbline 64
 0066           ;  }
 0066           L5:
 0066 2496              adiw R28,4
 0068                   .dbline 0 ; func end
 0068 0895              ret
 006A                   .dbsym r te 20 i
 006A                   .dbsym r t 20 c
 006A                   .dbsym r pc 20 pc
 006A                   .dbsym l test 0 A[4:4]c
 006A                   .dbend

⌨️ 快捷键说明

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