📄 test.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 + -