📄 m16_horse.lis
字号:
.module M16_Horse.c
.area text(rom, con, rel)
0000 .dbfile G:\M16_Horse\M16_Horse.c
0000 .dbfunc e Delay _Delay fV
0000 ; j -> R20
0000 ; i -> R16
.even
0000 _Delay::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 6
0002 ; #include<iom8.h>
0002 ; #define uchar unsigned char
0002 ; #define uint unsigned int
0002 ;
0002 ; void Delay(uchar i)
0002 ; {
0002 .dbline 8
0002 ; uchar j;
0002 ; for(;i!=0;i--)
0002 06C0 rjmp L5
0004 L2:
0004 .dbline 9
0004 ; {
0004 .dbline 10
0004 4AEF ldi R20,250
0006 01C0 rjmp L9
0008 L6:
0008 .dbline 10
0008 L7:
0008 .dbline 10
0008 4A95 dec R20
000A L9:
000A .dbline 10
000A 4423 tst R20
000C E9F7 brne L6
000E .dbline 11
000E L3:
000E .dbline 8
000E 0A95 dec R16
0010 L5:
0010 .dbline 8
0010 0023 tst R16
0012 C1F7 brne L2
0014 .dbline -2
0014 L1:
0014 00D0 rcall pop_gset1
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbsym r j 20 c
0018 .dbsym r i 16 c
0018 .dbend
0018 .dbfunc e Horse _Horse fV
0018 ; i -> R16
.even
0018 _Horse::
0018 00D0 rcall push_gset1
001A .dbline -1
001A .dbline 15
001A ; for(j=250;j!=0;j--);
001A ; }
001A ; }
001A ;
001A ; void Horse(uchar i)
001A ; {
001A .dbline 16
001A ; switch(i)
001A 402F mov R20,R16
001C 5527 clr R21
001E 4030 cpi R20,0
0020 4507 cpc R20,R21
0022 09F1 breq L14
0024 X0:
0024 4130 cpi R20,1
0026 E0E0 ldi R30,0
0028 5E07 cpc R21,R30
002A 01F1 breq L15
002C 4230 cpi R20,2
002E E0E0 ldi R30,0
0030 5E07 cpc R21,R30
0032 F9F0 breq L16
0034 4330 cpi R20,3
0036 E0E0 ldi R30,0
0038 5E07 cpc R21,R30
003A F1F0 breq L17
003C 4430 cpi R20,4
003E E0E0 ldi R30,0
0040 5E07 cpc R21,R30
0042 E9F0 breq L18
0044 4530 cpi R20,5
0046 E0E0 ldi R30,0
0048 5E07 cpc R21,R30
004A E1F0 breq L19
004C 4630 cpi R20,6
004E E0E0 ldi R30,0
0050 5E07 cpc R21,R30
0052 D9F0 breq L20
0054 4730 cpi R20,7
0056 E0E0 ldi R30,0
0058 5E07 cpc R21,R30
005A D1F0 breq L21
005C 4830 cpi R20,8
005E E0E0 ldi R30,0
0060 5E07 cpc R21,R30
0062 C9F0 breq L22
0064 1AC0 rjmp L12
0066 X1:
0066 .dbline 17
0066 ; {
0066 L14:
0066 .dbline 18
0066 ; case 0:PORTB=0x00;break;
0066 2224 clr R2
0068 28BA out 0x18,R2
006A .dbline 18
006A 17C0 rjmp L12
006C L15:
006C .dbline 19
006C ; case 1:PORTB=0x01;break;
006C 81E0 ldi R24,1
006E 88BB out 0x18,R24
0070 .dbline 19
0070 14C0 rjmp L12
0072 L16:
0072 .dbline 20
0072 ; case 2:PORTB=0x03;break;
0072 83E0 ldi R24,3
0074 88BB out 0x18,R24
0076 .dbline 20
0076 11C0 rjmp L12
0078 L17:
0078 .dbline 21
0078 ; case 3:PORTB=0x07;break;
0078 87E0 ldi R24,7
007A 88BB out 0x18,R24
007C .dbline 21
007C 0EC0 rjmp L12
007E L18:
007E .dbline 22
007E ; case 4:PORTB=0x0f;break;
007E 8FE0 ldi R24,15
0080 88BB out 0x18,R24
0082 .dbline 22
0082 0BC0 rjmp L12
0084 L19:
0084 .dbline 23
0084 ; case 5:PORTB=0x1f;break;
0084 8FE1 ldi R24,31
0086 88BB out 0x18,R24
0088 .dbline 23
0088 08C0 rjmp L12
008A L20:
008A .dbline 24
008A ; case 6:PORTB=0x3f;break;
008A 8FE3 ldi R24,63
008C 88BB out 0x18,R24
008E .dbline 24
008E 05C0 rjmp L12
0090 L21:
0090 .dbline 25
0090 ; case 7:PORTB=0x7f;break;
0090 8FE7 ldi R24,127
0092 88BB out 0x18,R24
0094 .dbline 25
0094 02C0 rjmp L12
0096 L22:
0096 .dbline 26
0096 8FEF ldi R24,255
0098 88BB out 0x18,R24
009A .dbline 26
009A .dbline 27
009A L12:
009A .dbline -2
009A L10:
009A 00D0 rcall pop_gset1
009C .dbline 0 ; func end
009C 0895 ret
009E .dbsym r i 16 c
009E .dbend
009E .dbfunc e main _main fV
009E ; i -> R20
.even
009E _main::
009E .dbline -1
009E .dbline 32
009E ; case 8:PORTB=0xff;break;
009E ; default:break;
009E ; }
009E ; }
009E ;
009E ; void main()
009E ; {
009E .dbline 34
009E ; uchar i;
009E ; DDRB=0xff;
009E 8FEF ldi R24,255
00A0 87BB out 0x17,R24
00A2 .dbline 35
00A2 ; PORTB=0xff;
00A2 88BB out 0x18,R24
00A4 .dbline 36
00A4 ; Delay(10);
00A4 0AE0 ldi R16,10
00A6 ACDF rcall _Delay
00A8 .dbline 37
00A8 ; PORTB=0x00;
00A8 2224 clr R2
00AA 28BA out 0x18,R2
00AC 12C0 rjmp L25
00AE L24:
00AE .dbline 39
00AE ; while(1)
00AE ; {
00AE .dbline 40
00AE ; for(i=0;i<9;i++)
00AE 4427 clr R20
00B0 05C0 rjmp L30
00B2 L27:
00B2 .dbline 41
00B2 .dbline 42
00B2 042F mov R16,R20
00B4 B1DF rcall _Horse
00B6 .dbline 43
00B6 04E6 ldi R16,100
00B8 A3DF rcall _Delay
00BA .dbline 44
00BA L28:
00BA .dbline 40
00BA 4395 inc R20
00BC L30:
00BC .dbline 40
00BC 4930 cpi R20,9
00BE C8F3 brlo L27
00C0 .dbline 45
00C0 ; {
00C0 ; Horse(i);
00C0 ; Delay(100);
00C0 ; }
00C0 ; for(i=8;i!=0;i--)
00C0 48E0 ldi R20,8
00C2 05C0 rjmp L34
00C4 L31:
00C4 .dbline 46
00C4 .dbline 47
00C4 042F mov R16,R20
00C6 A8DF rcall _Horse
00C8 .dbline 48
00C8 04E6 ldi R16,100
00CA 9ADF rcall _Delay
00CC .dbline 49
00CC L32:
00CC .dbline 45
00CC 4A95 dec R20
00CE L34:
00CE .dbline 45
00CE 4423 tst R20
00D0 C9F7 brne L31
00D2 .dbline 50
00D2 L25:
00D2 .dbline 38
00D2 EDCF rjmp L24
00D4 X2:
00D4 .dbline -2
00D4 L23:
00D4 .dbline 0 ; func end
00D4 0895 ret
00D6 .dbsym r i 20 c
00D6 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -