reclama_fct3.lis
来自「a ICCAVR source code for a small led mat」· LIS 代码 · 共 1,183 行 · 第 1/3 页
LIS
1,183 行
014A X8:
014A .dbline 63
014A .dbline 63
014A 28B2 in R2,0x18
014C 28BA out 0x18,R2
014E .dbline 63
014E 00D0 rcall _clock
0150 .dbline 63
0150 88B3 in R24,0x18
0152 8F7F andi R24,255
0154 88BB out 0x18,R24
0156 .dbline 63
0156 L25:
0156 .dbline 64
0156 ; if(a==0&b==1) {PORTB|=unu;clock();PORTB&=~unu;}
0156 6623 tst R22
0158 21F4 brne L33
015A X9:
015A 81E0 ldi R24,1
015C 90E0 ldi R25,0
015E 6C01 movw R12,R24
0160 02C0 rjmp L34
0162 L33:
0162 CC24 clr R12
0164 DD24 clr R13
0166 L34:
0166 4130 cpi R20,1
0168 21F4 brne L35
016A X10:
016A 81E0 ldi R24,1
016C 90E0 ldi R25,0
016E 5C01 movw R10,R24
0170 02C0 rjmp L36
0172 L35:
0172 AA24 clr R10
0174 BB24 clr R11
0176 L36:
0176 1601 movw R2,R12
0178 2A20 and R2,R10
017A 3B20 and R3,R11
017C 2220 tst R2
017E 11F4 brne X11
0180 3320 tst R3
0182 19F0 breq L31
0184 X11:
0184 .dbline 64
0184 .dbline 64
0184 C09A sbi 0x18,0
0186 .dbline 64
0186 00D0 rcall _clock
0188 .dbline 64
0188 C098 cbi 0x18,0
018A .dbline 64
018A L31:
018A .dbline 65
018A ; if(a==1&b==0) {PORTB|=doi;clock();PORTB&=~doi;}
018A 6130 cpi R22,1
018C 21F4 brne L39
018E X12:
018E 81E0 ldi R24,1
0190 90E0 ldi R25,0
0192 6C01 movw R12,R24
0194 02C0 rjmp L40
0196 L39:
0196 CC24 clr R12
0198 DD24 clr R13
019A L40:
019A 4423 tst R20
019C 21F4 brne L41
019E X13:
019E 81E0 ldi R24,1
01A0 90E0 ldi R25,0
01A2 5C01 movw R10,R24
01A4 02C0 rjmp L42
01A6 L41:
01A6 AA24 clr R10
01A8 BB24 clr R11
01AA L42:
01AA 1601 movw R2,R12
01AC 2A20 and R2,R10
01AE 3B20 and R3,R11
01B0 2220 tst R2
01B2 11F4 brne X14
01B4 3320 tst R3
01B6 19F0 breq L37
01B8 X14:
01B8 .dbline 65
01B8 .dbline 65
01B8 C19A sbi 0x18,1
01BA .dbline 65
01BA 00D0 rcall _clock
01BC .dbline 65
01BC C198 cbi 0x18,1
01BE .dbline 65
01BE L37:
01BE .dbline 66
01BE ; if(a==1&b==1) {PORTB|=trei;clock();PORTB&=~trei;}
01BE 6130 cpi R22,1
01C0 19F4 brne L45
01C2 X15:
01C2 61E0 ldi R22,1
01C4 70E0 ldi R23,0
01C6 02C0 rjmp L46
01C8 L45:
01C8 6627 clr R22
01CA 7727 clr R23
01CC L46:
01CC 4130 cpi R20,1
01CE 19F4 brne L47
01D0 X16:
01D0 41E0 ldi R20,1
01D2 50E0 ldi R21,0
01D4 02C0 rjmp L48
01D6 L47:
01D6 4427 clr R20
01D8 5527 clr R21
01DA L48:
01DA 1B01 movw R2,R22
01DC 2422 and R2,R20
01DE 3522 and R3,R21
01E0 2220 tst R2
01E2 11F4 brne X17
01E4 3320 tst R3
01E6 39F0 breq L43
01E8 X17:
01E8 .dbline 66
01E8 .dbline 66
01E8 88B3 in R24,0x18
01EA 8360 ori R24,3
01EC 88BB out 0x18,R24
01EE .dbline 66
01EE 00D0 rcall _clock
01F0 .dbline 66
01F0 88B3 in R24,0x18
01F2 8C7F andi R24,252
01F4 88BB out 0x18,R24
01F6 .dbline 66
01F6 L43:
01F6 .dbline -2
01F6 L24:
01F6 .dbline 0 ; func end
01F6 00C0 rjmp pop_xgsetF03C
01F8 .dbsym r b 20 c
01F8 .dbsym r a 22 c
01F8 .dbend
01F8 .dbfunc e afisheaza_A _afisheaza_A fV
01F8 ; j -> R20
01F8 ; img -> R10
.even
01F8 _afisheaza_A::
01F8 AA92 st -y,R10
01FA 4A93 st -y,R20
01FC A02E mov R10,R16
01FE 2D97 sbiw R28,13
0200 .dbline -1
0200 .dbline 69
0200 ; }
0200 ; /* ********************** */
0200 ; void afisheaza_A(uc_8 img){
0200 .dbline 71
0200 ; uc_8 j;
0200 ; linie_goala(10);
0200 0AE0 ldi R16,10
0202 60D0 rcall _linie_goala
0204 .dbline 72
0204 ; for(j=0;j<5;j++) send_octetA(zecimal_binar(fig_dec(img).c[j]));
0204 4427 clr R20
0206 12C0 rjmp L53
0208 L50:
0208 .dbline 72
0208 2A2D mov R18,R10
020A 8E01 movw R16,R28
020C 00D0 rcall _fig_dec
020E CE01 movw R24,R28
0210 E42F mov R30,R20
0212 FF27 clr R31
0214 E80F add R30,R24
0216 F91F adc R31,R25
0218 2081 ldd R18,z+0
021A 8E01 movw R16,R28
021C 0B5F subi R16,251 ; offset = 5
021E 1F4F sbci R17,255
0220 77D0 rcall _zecimal_binar
0222 8E01 movw R16,R28
0224 0B5F subi R16,251 ; offset = 5
0226 1F4F sbci R17,255
0228 EBDE rcall _send_octetA
022A L51:
022A .dbline 72
022A 4395 inc R20
022C L53:
022C .dbline 72
022C 4530 cpi R20,5
022E 60F3 brlo L50
0230 X18:
0230 .dbline 73
0230 ; linie_goala(10);
0230 0AE0 ldi R16,10
0232 48D0 rcall _linie_goala
0234 .dbline -2
0234 L49:
0234 .dbline 0 ; func end
0234 2D96 adiw R28,13
0236 4991 ld R20,y+
0238 A990 ld R10,y+
023A 0895 ret
023C .dbsym r j 20 c
023C .dbsym r img 10 c
023C .dbend
023C .dbfunc e afisheaza_B _afisheaza_B fV
023C ; j -> R20
023C ; img -> R10
.even
023C _afisheaza_B::
023C AA92 st -y,R10
023E 4A93 st -y,R20
0240 A02E mov R10,R16
0242 2D97 sbiw R28,13
0244 .dbline -1
0244 .dbline 77
0244 ; }
0244 ;
0244 ; /* ********************** */
0244 ; void afisheaza_B(uc_8 img){
0244 .dbline 79
0244 ; uc_8 j;
0244 ; linie_goala(10);
0244 0AE0 ldi R16,10
0246 3ED0 rcall _linie_goala
0248 .dbline 80
0248 ; for(j=0;j<5;j++) send_octetB(zecimal_binar(fig_dec(img).c[j]));
0248 4427 clr R20
024A 12C0 rjmp L58
024C L55:
024C .dbline 80
024C 2A2D mov R18,R10
024E 8E01 movw R16,R28
0250 00D0 rcall _fig_dec
0252 CE01 movw R24,R28
0254 E42F mov R30,R20
0256 FF27 clr R31
0258 E80F add R30,R24
025A F91F adc R31,R25
025C 2081 ldd R18,z+0
025E 8E01 movw R16,R28
0260 0B5F subi R16,251 ; offset = 5
0262 1F4F sbci R17,255
0264 55D0 rcall _zecimal_binar
0266 8E01 movw R16,R28
0268 0B5F subi R16,251 ; offset = 5
026A 1F4F sbci R17,255
026C D7DE rcall _send_octetB
026E L56:
026E .dbline 80
026E 4395 inc R20
0270 L58:
0270 .dbline 80
0270 4530 cpi R20,5
0272 60F3 brlo L55
0274 X19:
0274 .dbline 81
0274 ; linie_goala(10);
0274 0AE0 ldi R16,10
0276 26D0 rcall _linie_goala
0278 .dbline -2
0278 L54:
0278 .dbline 0 ; func end
0278 2D96 adiw R28,13
027A 4991 ld R20,y+
027C A990 ld R10,y+
027E 0895 ret
0280 .dbsym r j 20 c
0280 .dbsym r img 10 c
0280 .dbend
0280 .dbfunc e afisheaza_AB _afisheaza_AB fV
0280 ; j -> R20
0280 ; img -> R10
.even
0280 _afisheaza_AB::
0280 AA92 st -y,R10
0282 4A93 st -y,R20
0284 A02E mov R10,R16
0286 2D97 sbiw R28,13
0288 .dbline -1
0288 .dbline 85
0288 ; }
0288 ;
0288 ; /* ********************** */
0288 ; void afisheaza_AB(uc_8 img){
0288 .dbline 87
0288 ; uc_8 j;
0288 ; linie_goala_AB(5);
0288 05E0 ldi R16,5
028A 2FD0 rcall _linie_goala_AB
028C .dbline 88
028C ; for(j=0;j<5;j++) send_octetAB(zecimal_binar(fig_dec(img).c[j]));
028C 4427 clr R20
028E 12C0 rjmp L63
0290 L60:
0290 .dbline 88
0290 2A2D mov R18,R10
0292 8E01 movw R16,R28
0294 00D0 rcall _fig_dec
0296 CE01 movw R24,R28
0298 E42F mov R30,R20
029A FF27 clr R31
029C E80F add R30,R24
029E F91F adc R31,R25
02A0 2081 ldd R18,z+0
02A2 8E01 movw R16,R28
02A4 0B5F subi R16,251 ; offset = 5
02A6 1F4F sbci R17,255
02A8 33D0 rcall _zecimal_binar
02AA 8E01 movw R16,R28
02AC 0B5F subi R16,251 ; offset = 5
02AE 1F4F sbci R17,255
02B0 C3DE rcall _send_octetAB
02B2 L61:
02B2 .dbline 88
02B2 4395 inc R20
02B4 L63:
02B4 .dbline 88
02B4 4530 cpi R20,5
02B6 60F3 brlo L60
02B8 X20:
02B8 .dbline 89
02B8 ; linie_goala_AB(5);
02B8 05E0 ldi R16,5
02BA 17D0 rcall _linie_goala_AB
02BC .dbline -2
02BC L59:
02BC .dbline 0 ; func end
02BC 2D96 adiw R28,13
02BE 4991 ld R20,y+
02C0 A990 ld R10,y+
02C2 0895 ret
02C4 .dbsym r j 20 c
02C4 .dbsym r img 10 c
02C4 .dbend
02C4 .dbfunc e linie_goala _linie_goala fV
02C4 ; i -> R10
02C4 ; j -> R20
02C4 ; n -> R12
.even
02C4 _linie_goala::
02C4 00D0 rcall push_xgset303C
02C6 C02E mov R12,R16
02C8 .dbline -1
02C8 .dbline 92
02C8 ; }
02C8 ; /* ********************** */
02C8 ; void linie_goala(uc_8 n) {
02C8 .dbline 94
02C8 ; uc_8 i,j;
02C8 ; for(i=0;i<n;i++) { for(j=0;j<8;j++){PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
02C8 AA24 clr R10
02CA 0CC0 rjmp L68
02CC L65:
02CC .dbline 94
02CC .dbline 94
02CC 4427 clr R20
02CE 07C0 rjmp L72
02D0 L69:
02D0 .dbline 94
02D0 .dbline 94
02D0 28B2 in R2,0x18
02D2 28BA out 0x18,R2
02D4 .dbline 94
02D4 00D0 rcall _clock
02D6 .dbline 94
02D6 88B3 in R24,0x18
02D8 8F7F andi R24,255
02DA 88BB out 0x18,R24
02DC .dbline 94
02DC L70:
02DC .dbline 94
02DC 4395 inc R20
02DE L72:
02DE .dbline 94
02DE 4830 cpi R20,8
02E0 B8F3 brlo L69
02E2 X21:
02E2 .dbline 95
02E2 ; }
02E2 L66:
02E2 .dbline 94
02E2 A394 inc R10
02E4 L68:
02E4 .dbline 94
02E4 AC14 cp R10,R12
02E6 90F3 brlo L65
02E8 X22:
02E8 .dbline -2
02E8 L64:
02E8 .dbline 0 ; func end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?