📄 1.lis
字号:
00EC 2496 adiw R28,4
00EE 00D0 rcall pop_gset3
00F0 2496 adiw R28,4
00F2 .dbline 0 ; func end
00F2 0895 ret
00F4 .dbsym r i 10 I
00F4 .dbsym l ch 0 L
00F4 .dbsym l x 10 L
00F4 .dbend
00F4 .dbfunc e write1 _write1 fV
00F4 ; i -> R10,R11
00F4 ; ch -> y+0
00F4 ; x -> y+10
.even
00F4 _write1::
00F4 00D0 rcall push_arg4
00F6 00D0 rcall push_gset3
00F8 2497 sbiw R28,4
00FA .dbline -1
00FA .dbline 69
00FA ;
00FA ; }
00FA ;
00FA ; void write1(long int x)
00FA ; {
00FA .dbline 72
00FA ; long int ch;
00FA ; int i;
00FA ; ch = x;
00FA 2A84 ldd R2,y+10
00FC 3B84 ldd R3,y+11
00FE 4C84 ldd R4,y+12
0100 5D84 ldd R5,y+13
0102 2882 std y+0,R2
0104 3982 std y+1,R3
0106 4A82 std y+2,R4
0108 5B82 std y+3,R5
010A .dbline 73
010A ; PORTD&= ~(1<<clk); // CLK
010A 9498 cbi 0x12,4
010C .dbline 74
010C ; PORTD&= ~(1<<load1);
010C 9698 cbi 0x12,6
010E .dbline 75
010E ; for(i=0; i<12; i++)
010E AA24 clr R10
0110 BB24 clr R11
0112 L25:
0112 .dbline 76
0112 ; {
0112 .dbline 77
0112 ; if(ch&0x001)
0112 41E0 ldi R20,1
0114 50E0 ldi R21,0
0116 60E0 ldi R22,0
0118 70E0 ldi R23,0
011A 2880 ldd R2,y+0
011C 3980 ldd R3,y+1
011E 4A80 ldd R4,y+2
0120 5B80 ldd R5,y+3
0122 2422 and R2,R20
0124 3522 and R3,R21
0126 4622 and R4,R22
0128 5722 and R5,R23
012A 40E0 ldi R20,0
012C 50E0 ldi R21,0
012E 60E0 ldi R22,0
0130 70E0 ldi R23,0
0132 2416 cp R2,R20
0134 3506 cpc R3,R21
0136 4606 cpc R4,R22
0138 5706 cpc R5,R23
013A 81F0 breq L29
013C .dbline 78
013C ; {
013C .dbline 79
013C ; PORTD|= 0x08; //数据为1 00100000
013C 939A sbi 0x12,3
013E .dbline 80
013E ; ch >>= 1;
013E 2880 ldd R2,y+0
0140 3980 ldd R3,y+1
0142 4A80 ldd R4,y+2
0144 5B80 ldd R5,y+3
0146 5594 asr R5
0148 4794 ror R4
014A 3794 ror R3
014C 2794 ror R2
014E 2882 std y+0,R2
0150 3982 std y+1,R3
0152 4A82 std y+2,R4
0154 5B82 std y+3,R5
0156 .dbline 81
0156 ; PORTD&= ~(1<<clk);
0156 9498 cbi 0x12,4
0158 .dbline 82
0158 ; PORTD|= (1<<clk);
0158 949A sbi 0x12,4
015A .dbline 84
015A ;
015A ; }
015A 0FC0 rjmp L30
015C L29:
015C .dbline 86
015C ; else
015C ; {
015C .dbline 87
015C ; PORTD&= ~(0x08); //数据为0
015C 9398 cbi 0x12,3
015E .dbline 88
015E ; ch >>= 1;
015E 2880 ldd R2,y+0
0160 3980 ldd R3,y+1
0162 4A80 ldd R4,y+2
0164 5B80 ldd R5,y+3
0166 5594 asr R5
0168 4794 ror R4
016A 3794 ror R3
016C 2794 ror R2
016E 2882 std y+0,R2
0170 3982 std y+1,R3
0172 4A82 std y+2,R4
0174 5B82 std y+3,R5
0176 .dbline 89
0176 ; PORTD&= ~(1<<clk);
0176 9498 cbi 0x12,4
0178 .dbline 90
0178 ; PORTD|= (1<<clk);
0178 949A sbi 0x12,4
017A .dbline 92
017A ;
017A ; }
017A L30:
017A .dbline 94
017A L26:
017A .dbline 75
017A 8A2D mov R24,R10
017C 9B2D mov R25,R11
017E 0196 adiw R24,1
0180 A82E mov R10,R24
0182 B92E mov R11,R25
0184 .dbline 75
0184 8C30 cpi R24,12
0186 E0E0 ldi R30,0
0188 9E07 cpc R25,R30
018A 1CF2 brlt L25
018C .dbline 95
018C ;
018C ; }
018C ; PORTD|= 1<<load1;
018C 969A sbi 0x12,6
018E .dbline -2
018E L24:
018E 2496 adiw R28,4
0190 00D0 rcall pop_gset3
0192 2496 adiw R28,4
0194 .dbline 0 ; func end
0194 0895 ret
0196 .dbsym r i 10 I
0196 .dbsym l ch 0 L
0196 .dbsym l x 10 L
0196 .dbend
0196 .dbfunc e main _main fI
0196 ; m -> R10,R11
0196 ; n -> R10,R11
0196 ; i -> R10,R11
.even
0196 _main::
0196 .dbline -1
0196 .dbline 101
0196 ;
0196 ; }
0196 ;
0196 ; /*******************************主函数***********************************/
0196 ; int main( void )
0196 ; {
0196 .dbline 102
0196 ; int i=0,n=0,m=0;
0196 AA24 clr R10
0198 BB24 clr R11
019A .dbline 102
019A .dbline 102
019A .dbline 103
019A ; DDRD=0xff; //设置为输出
019A 8FEF ldi R24,255
019C 81BB out 0x11,R24
019E .dbline 104
019E ; PORTD |=1<<dat;
019E 939A sbi 0x12,3
01A0 .dbline 105
01A0 ; PORTD &=~(1<<dat);
01A0 9398 cbi 0x12,3
01A2 .dbline 106
01A2 ; delay_nms(20);
01A2 04E1 ldi R16,20
01A4 10E0 ldi R17,0
01A6 47DF rcall _delay_nms
01A8 .dbline 107
01A8 ; PORTD |=1<<dat;
01A8 939A sbi 0x12,3
01AA .dbline 108
01AA ; write(0x201);
01AA 01E0 ldi R16,1
01AC 12E0 ldi R17,2
01AE 20E0 ldi R18,0
01B0 30E0 ldi R19,0
01B2 4FDF rcall _write
01B4 .dbline 109
01B4 ; write(0x401);
01B4 01E0 ldi R16,1
01B6 14E0 ldi R17,4
01B8 20E0 ldi R18,0
01BA 30E0 ldi R19,0
01BC 4ADF rcall _write
01BE .dbline 110
01BE ; write(0x500);
01BE 00E0 ldi R16,0
01C0 15E0 ldi R17,5
01C2 20E0 ldi R18,0
01C4 30E0 ldi R19,0
01C6 45DF rcall _write
01C8 .dbline 111
01C8 ; write1(0x201);
01C8 01E0 ldi R16,1
01CA 12E0 ldi R17,2
01CC 20E0 ldi R18,0
01CE 30E0 ldi R19,0
01D0 91DF rcall _write1
01D2 .dbline 112
01D2 ; write1(0x401);
01D2 01E0 ldi R16,1
01D4 14E0 ldi R17,4
01D6 20E0 ldi R18,0
01D8 30E0 ldi R19,0
01DA 8CDF rcall _write1
01DC .dbline 113
01DC ; write1(0x500);
01DC 00E0 ldi R16,0
01DE 15E0 ldi R17,5
01E0 20E0 ldi R18,0
01E2 30E0 ldi R19,0
01E4 87DF rcall _write1
01E6 1CC0 rjmp L33
01E8 L32:
01E8 .dbline 115
01E8 .dbline 116
01E8 0FEF ldi R16,255
01EA 18E0 ldi R17,8
01EC 20E0 ldi R18,0
01EE 30E0 ldi R19,0
01F0 30DF rcall _write
01F2 .dbline 117
01F2 0FEF ldi R16,255
01F4 18E0 ldi R17,8
01F6 20E0 ldi R18,0
01F8 30E0 ldi R19,0
01FA 7CDF rcall _write1
01FC .dbline 118
01FC 0FEF ldi R16,255
01FE 19E0 ldi R17,9
0200 20E0 ldi R18,0
0202 30E0 ldi R19,0
0204 77DF rcall _write1
0206 .dbline 119
0206 0FEF ldi R16,255
0208 1AE0 ldi R17,10
020A 20E0 ldi R18,0
020C 30E0 ldi R19,0
020E 72DF rcall _write1
0210 .dbline 120
0210 0FEF ldi R16,255
0212 1BE0 ldi R17,11
0214 20E0 ldi R18,0
0216 30E0 ldi R19,0
0218 6DDF rcall _write1
021A .dbline 121
021A 08EE ldi R16,1000
021C 13E0 ldi R17,3
021E 0BDF rcall _delay_nms
0220 .dbline 122
0220 L33:
0220 .dbline 114
0220 E3CF rjmp L32
0222 X0:
0222 .dbline -2
0222 L31:
0222 .dbline 0 ; func end
0222 0895 ret
0224 .dbsym r m 10 I
0224 .dbsym r n 10 I
0224 .dbsym r i 10 I
0224 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -