📄 key.lis
字号:
.module key.c
.area text(rom, con, rel)
0000 .dbfile D:\avr\key\key.c
0000 .dbfunc e Delay _Delay fV
0000 ; a -> R20,R21
0000 ; b -> R22,R23
0000 ; x -> R16,R17
.even
0000 _Delay::
0000 00D0 rcall push_gset2
0002 .dbline -1
0002 .dbline 4
0002 ;
0002 ; #include <iom8v.h>
0002 ; void Delay(int x)
0002 ; {
0002 .dbline 6
0002 ; unsigned int a, b;
0002 ; for (a = 100; a>0; a--)
0002 44E6 ldi R20,100
0004 50E0 ldi R21,0
0006 0AC0 rjmp L5
0008 L2:
0008 .dbline 7
0008 68EE ldi R22,1000
000A 73E0 ldi R23,3
000C 02C0 rjmp L9
000E L6:
000E .dbline 7
000E L7:
000E .dbline 7
000E 6150 subi R22,1
0010 7040 sbci R23,0
0012 L9:
0012 .dbline 7
0012 6030 cpi R22,0
0014 6707 cpc R22,R23
0016 D9F7 brne L6
0018 X0:
0018 L3:
0018 .dbline 6
0018 4150 subi R20,1
001A 5040 sbci R21,0
001C L5:
001C .dbline 6
001C 4030 cpi R20,0
001E 4507 cpc R20,R21
0020 99F7 brne L2
0022 X1:
0022 .dbline -2
0022 L1:
0022 00D0 rcall pop_gset2
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbsym r a 20 i
0026 .dbsym r b 22 i
0026 .dbsym r x 16 I
0026 .dbend
0026 .dbfunc e main _main fV
0026 ; j -> <dead>
0026 ; i -> R20,R21
0026 ; ACC -> R22,R23
.even
0026 _main::
0026 .dbline -1
0026 .dbline 10
0026 ; for (b = 1000; b>0; b--);
0026 ; }
0026 ; void main()
0026 ; {
0026 .dbline 13
0026 ; unsigned int i,j,ACC;
0026 ; //ACC=0X000;
0026 ; DDRC=0XFE;
0026 8EEF ldi R24,254
0028 84BB out 0x14,R24
002A .dbline 14
002A ; PORTC=0XFF;
002A 8FEF ldi R24,255
002C 85BB out 0x15,R24
002E .dbline 15
002E ; DDRB=0XFF;
002E 87BB out 0x17,R24
0030 .dbline 16
0030 ; PORTB=0XFF;
0030 88BB out 0x18,R24
0032 .dbline 17
0032 ; DDRD=0XFF;
0032 81BB out 0x11,R24
0034 .dbline 18
0034 ; PORTD=0X00;
0034 2224 clr R2
0036 22BA out 0x12,R2
0038 24C0 rjmp L12
003A L11:
003A .dbline 20
003A ; while (1)
003A ; {
003A .dbline 22
003A ; //PORTB=0x00;
003A ; PORTC&=0B11111101;
003A 85B3 in R24,0x15
003C 8D7F andi R24,253
003E 85BB out 0x15,R24
0040 .dbline 25
0040 ;
0040 ; //Delay(1);
0040 ; PORTC|=0B00000010;
0040 A99A sbi 0x15,1
0042 .dbline 26
0042 ; for(i=9;i>0;i--)
0042 49E0 ldi R20,9
0044 50E0 ldi R21,0
0046 0EC0 rjmp L17
0048 L14:
0048 .dbline 27
0048 .dbline 28
0048 660F lsl R22
004A 771F rol R23
004C .dbline 29
004C 85B3 in R24,0x15
004E 8B7F andi R24,251
0050 85BB out 0x15,R24
0052 .dbline 30
0052 83B3 in R24,0x13
0054 9927 clr R25
0056 8170 andi R24,1
0058 9070 andi R25,0
005A 682B or R22,R24
005C 792B or R23,R25
005E .dbline 31
005E AA9A sbi 0x15,2
0060 .dbline 32
0060 L15:
0060 .dbline 26
0060 4150 subi R20,1
0062 5040 sbci R21,0
0064 L17:
0064 .dbline 26
0064 4030 cpi R20,0
0066 4507 cpc R20,R21
0068 79F7 brne L14
006A X2:
006A .dbline 34
006A ; {
006A ; ACC=ACC<<1;
006A ; PORTC&=0B11111011;
006A ; ACC|=(PINC&01);
006A ; PORTC|=0B00000100;
006A ; }
006A ; // PORTC=0xfB;
006A ; ACC= ACC&0x1ff;
006A 7170 andi R23,1
006C .dbline 35
006C ; if(ACC==0xff)
006C 6F3F cpi R22,255
006E E0E0 ldi R30,0
0070 7E07 cpc R23,R30
0072 19F4 brne L18
0074 .dbline 36
0074 ; {PORTB=0X00;
0074 .dbline 36
0074 2224 clr R2
0076 28BA out 0x18,R2
0078 .dbline 37
0078 ; }
0078 01C0 rjmp L19
007A L18:
007A .dbline 39
007A ; else
007A ; PORTB=ACC;
007A 68BB out 0x18,R22
007C L19:
007C .dbline 41
007C 0AEF ldi R16,250
007E 10E0 ldi R17,0
0080 BFDF rcall _Delay
0082 .dbline 42
0082 L12:
0082 .dbline 19
0082 DBCF rjmp L11
0084 X3:
0084 .dbline -2
0084 L10:
0084 .dbline 0 ; func end
0084 0895 ret
0086 .dbsym l j 1 i
0086 .dbsym r i 20 i
0086 .dbsym r ACC 22 i
0086 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -