📄 练习.lis
字号:
.module _练习.c
.area text(rom, con, rel)
; i -> R16,R17
.even
0000 _delay_1ms::
0000 ; #include<iom128v.h>
0000 ; void delay_1ms(void)
0000 ; { unsigned int i;
0000 0027 clr R16
0002 1127 clr R17
0004 02C0 xjmp L5
0006 L2:
0006 L3:
0006 0F5F subi R16,255 ; offset = 1
0008 1F4F sbci R17,255
000A L5:
000A ; for(i=0;i<1000;i++);
000A 083E cpi R16,232
000C E3E0 ldi R30,3
000E 1E07 cpc R17,R30
0010 D0F3 brlo L2
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 ; i -> R20,R21
0014 ; n -> R22,R23
.even
0014 _delay_nms::
0014 0E940000 xcall push_gset2
0018 B801 movw R22,R16
001A ; }
001A ; void delay_nms(unsigned int n)
001A ; {unsigned int i=0;
001A 4427 clr R20
001C 5527 clr R21
001E 02C0 xjmp L10
0020 L7:
0020 L8:
0020 4F5F subi R20,255 ; offset = 1
0022 5F4F sbci R21,255
0024 L10:
0024 ; for(i=0;i<n;i++);
0024 4617 cp R20,R22
0026 5707 cpc R21,R23
0028 D8F3 brlo L7
002A ; delay_1ms();
002A EADF xcall _delay_1ms
002C L6:
002C 0E940000 xcall pop_gset2
0030 .dbline 0 ; func end
0030 0895 ret
.area lit(rom, con, rel)
0000 L12:
0000 FF00 .word 255
0002 0000 .word 0
0004 FF00 .word 255
0006 0000 .word 0
0008 FF00 .word 255
000A 0000 .word 0
000C L13:
000C FE00 .word 254
000E FD00 .word 253
0010 FB00 .word 251
0012 F700 .word 247
0014 EF00 .word 239
0016 DF00 .word 223
0018 BF00 .word 191
001A 7F00 .word 127
001C L14:
001C 7F00 .word 127
001E BF00 .word 191
0020 DF00 .word 223
0022 EF00 .word 239
0024 F700 .word 247
0026 FB00 .word 251
0028 FD00 .word 253
002A FE00 .word 254
002C L15:
002C 3C00 .word 60
002E C300 .word 195
0030 3C00 .word 60
0032 C300 .word 195
0034 L16:
0034 FC00 .word 252
0036 F300 .word 243
0038 CF00 .word 207
003A 3F00 .word 63
003C L17:
003C 7E00 .word 126
003E BD00 .word 189
0040 DB00 .word 219
0042 E700 .word 231
0044 DB00 .word 219
0046 BD00 .word 189
0048 7E00 .word 126
.area text(rom, con, rel)
; v -> R10,R11
; F -> y+60
; E -> y+52
; D -> y+44
; C -> y+28
; B -> y+12
; A -> y+0
; m -> R12,R13
.even
0032 _main::
0032 EF97 sbiw R28,63
0034 2B97 sbiw R28,11 ; offset = 74
0036 ; }
0036 ;
0036 ; void main()
0036 ; {unsigned int m;
0036 ; unsigned int v;
0036 ; unsigned A[]={0xff,0x00,0xff,0x00,0xff,0x00};
0036 80E0 ldi R24,<L12
0038 90E0 ldi R25,>L12
003A FE01 movw R30,R28
003C 0CE0 ldi R16,12
003E 10E0 ldi R17,0
0040 FA93 st -y,R31
0042 EA93 st -y,R30
0044 9A93 st -y,R25
0046 8A93 st -y,R24
0048 0E940000 xcall asgncblk
004C ; unsigned B[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
004C 80E0 ldi R24,<L13
004E 90E0 ldi R25,>L13
0050 FE01 movw R30,R28
0052 3C96 adiw R30,12
0054 00E1 ldi R16,16
0056 10E0 ldi R17,0
0058 FA93 st -y,R31
005A EA93 st -y,R30
005C 9A93 st -y,R25
005E 8A93 st -y,R24
0060 0E940000 xcall asgncblk
0064 ; unsigned C[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
0064 80E0 ldi R24,<L14
0066 90E0 ldi R25,>L14
0068 FE01 movw R30,R28
006A 7C96 adiw R30,28
006C 00E1 ldi R16,16
006E 10E0 ldi R17,0
0070 FA93 st -y,R31
0072 EA93 st -y,R30
0074 9A93 st -y,R25
0076 8A93 st -y,R24
0078 0E940000 xcall asgncblk
007C ; unsigned D[]={0x3c,0xc3,0x3c,0xc3};
007C 80E0 ldi R24,<L15
007E 90E0 ldi R25,>L15
0080 FE01 movw R30,R28
0082 BC96 adiw R30,44
0084 08E0 ldi R16,8
0086 10E0 ldi R17,0
0088 FA93 st -y,R31
008A EA93 st -y,R30
008C 9A93 st -y,R25
008E 8A93 st -y,R24
0090 0E940000 xcall asgncblk
0094 ; unsigned E[]={0xfc,0xf3,0xcf,0x3f};
0094 80E0 ldi R24,<L16
0096 90E0 ldi R25,>L16
0098 FE01 movw R30,R28
009A F496 adiw R30,52
009C 08E0 ldi R16,8
009E 10E0 ldi R17,0
00A0 FA93 st -y,R31
00A2 EA93 st -y,R30
00A4 9A93 st -y,R25
00A6 8A93 st -y,R24
00A8 0E940000 xcall asgncblk
00AC ; unsigned F[]={0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e};
00AC 80E0 ldi R24,<L17
00AE 90E0 ldi R25,>L17
00B0 FE01 movw R30,R28
00B2 FC96 adiw R30,60
00B4 0EE0 ldi R16,14
00B6 10E0 ldi R17,0
00B8 FA93 st -y,R31
00BA EA93 st -y,R30
00BC 9A93 st -y,R25
00BE 8A93 st -y,R24
00C0 0E940000 xcall asgncblk
00C4 ; DDRB=0xff;
00C4 8FEF ldi R24,255
00C6 87BB out 0x17,R24
00C8 ; PORTB=0xff;
00C8 88BB out 0x18,R24
00CA ; for(v=0;v<1000;v++)
00CA AA24 clr R10
00CC BB24 clr R11
00CE DAC0 xjmp L21
00D0 L18:
00D0 ; { for(m=0;m<6;m++)
00D0 CC24 clr R12
00D2 DD24 clr R13
00D4 1BC0 xjmp L25
00D6 L22:
00D6 02E0 ldi R16,2
00D8 10E0 ldi R17,0
00DA 9601 movw R18,R12
00DC 0E940000 xcall empy16s
00E0 F801 movw R30,R16
00E2 CE01 movw R24,R28
00E4 E80F add R30,R24
00E6 F91F adc R31,R25
00E8 2080 ldd R2,z+0
00EA 3180 ldd R3,z+1
00EC 28BA out 0x18,R2
00EE 40EA ldi R20,160
00F0 56E8 ldi R21,134
00F2 61E0 ldi R22,1
00F4 70E0 ldi R23,0
00F6 8A01 movw R16,R20
00F8 8DDF xcall _delay_nms
00FA 40EA ldi R20,160
00FC 56E8 ldi R21,134
00FE 61E0 ldi R22,1
0100 70E0 ldi R23,0
0102 8A01 movw R16,R20
0104 87DF xcall _delay_nms
0106 L23:
0106 C601 movw R24,R12
0108 0196 adiw R24,1
010A 6C01 movw R12,R24
010C L25:
010C C601 movw R24,R12
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -