📄 reclama3.lst
字号:
13E 2744 CLR R20
13F C007 RJMP 0x0147
140 2FE4 MOV R30,R20
141 27FF CLR R31
142 0DEA ADD R30,R10
143 1DFB ADC R31,R11
144 8100 LDD R16,Z+0
145 D05C RCALL _send_bitB
146 9543 INC R20
147 3048 CPI R20,0x8
148 F3B8 BCS 0x0140
149 C22A RJMP pop_xgset300C
_send_octetAB:
i --> Y,+1
h --> R14
g --> R20
f --> R22
e --> R12
d --> R10
c --> Y,+2
b --> Y,+1
a --> Y,+0
oct --> R14
14A D219 RCALL push_xgsetF0FC
14B 0178 MOVW R14,R16
14C 9723 SBIW R28,3
(0020) }
(0021) /* ********************** */
(0022) void send_octetAB(struct octet oct){
(0023) uc_8 a,b,c,d,e,f,g,h,i;
(0024)
(0025) a=oct.a[0];b=oct.a[1];c=oct.a[2];d=oct.a[3];
14D 01F7 MOVW R30,R14
14E 8020 LDD R2,Z+0
14F 8228 STD Y+0,R2
150 8021 LDD R2,Z+1
151 8229 STD Y+1,R2
152 8022 LDD R2,Z+2
153 822A STD Y+2,R2
154 80A3 LDD R10,Z+3
(0026) e=oct.a[4];f=oct.a[5];g=oct.a[6];h=oct.a[7];
155 80C4 LDD R12,Z+4
156 8165 LDD R22,Z+5
157 8146 LDD R20,Z+6
158 80E7 LDD R14,Z+7
(0027)
(0028) send_bitAB(a,a);
159 8128 LDD R18,Y+0
15A 2F02 MOV R16,R18
15B D05D RCALL _send_bitAB
(0029) send_bitAB(c,g);
15C 2F24 MOV R18,R20
15D 810A LDD R16,Y+2
15E D05A RCALL _send_bitAB
(0030) send_bitAB(d,g);
15F 2F24 MOV R18,R20
160 2D0A MOV R16,R10
161 D057 RCALL _send_bitAB
(0031) send_bitAB(d,f);
162 2F26 MOV R18,R22
163 2D0A MOV R16,R10
164 D054 RCALL _send_bitAB
(0032) send_bitAB(f,e);
165 2D2C MOV R18,R12
166 2F06 MOV R16,R22
167 D051 RCALL _send_bitAB
(0033) send_bitAB(c,h);
168 2D2E MOV R18,R14
169 810A LDD R16,Y+2
16A D04E RCALL _send_bitAB
(0034) send_bitAB(b,h);
16B 2D2E MOV R18,R14
16C 8109 LDD R16,Y+1
16D D04B RCALL _send_bitAB
(0035) send_bitAB(b,e);
16E 2D2C MOV R18,R12
16F 8109 LDD R16,Y+1
170 D048 RCALL _send_bitAB
(0036) send_bitAB(a,a);
171 8128 LDD R18,Y+0
172 2F02 MOV R16,R18
173 D045 RCALL _send_bitAB
(0037) send_bitAB(c,g);
174 2F24 MOV R18,R20
175 810A LDD R16,Y+2
176 D042 RCALL _send_bitAB
(0038) send_bitAB(d,g);
177 2F24 MOV R18,R20
178 2D0A MOV R16,R10
179 D03F RCALL _send_bitAB
(0039) send_bitAB(d,f);
17A 2F26 MOV R18,R22
17B 2D0A MOV R16,R10
17C D03C RCALL _send_bitAB
(0040) send_bitAB(f,e);
17D 2D2C MOV R18,R12
17E 2F06 MOV R16,R22
17F D039 RCALL _send_bitAB
(0041) send_bitAB(c,h);
180 2D2E MOV R18,R14
181 810A LDD R16,Y+2
182 D036 RCALL _send_bitAB
(0042) send_bitAB(b,h);
183 2D2E MOV R18,R14
184 8109 LDD R16,Y+1
185 D033 RCALL _send_bitAB
(0043) send_bitAB(b,e);
186 2D2C MOV R18,R12
187 8109 LDD R16,Y+1
188 D030 RCALL _send_bitAB
189 9623 ADIW R28,3
18A C1CE RJMP pop_xgsetF0FC
_send_bitA:
b --> R10
18B D1E3 RCALL push_xgset300C
18C 2EA0 MOV R10,R16
(0044)
(0045) }
(0046) /* ********************** */
(0047) void send_bitA(uc_8 b){
(0048) switch(b){
18D 2D4A MOV R20,R10
18E 2755 CLR R21
18F 3040 CPI R20,0
190 0745 CPC R20,R21
191 F029 BEQ 0x0197
192 3041 CPI R20,1
193 E0E0 LDI R30,0
194 075E CPC R21,R30
195 F041 BEQ 0x019E
196 C00A RJMP 0x01A1
(0049) case 0: PORTB|=(0<<PORTB0);clock();PORTB&=~(0<<PORTB0);break;//clock(); break;
197 B228 IN R2,0x18
198 BA28 OUT 0x18,R2
199 DE9B RCALL _clock
19A B388 IN R24,0x18
19B 7F8F ANDI R24,0xFF
19C BB88 OUT 0x18,R24
19D C003 RJMP 0x01A1
(0050) case 1: PORTB|=(1<<PORTB0);clock();PORTB&=~(1<<PORTB0);break;
19E 9AC0 SBI 0x18,0
19F DE95 RCALL _clock
1A0 98C0 CBI 0x18,0
1A1 C1D2 RJMP pop_xgset300C
_send_bitB:
b --> R10
1A2 D1CC RCALL push_xgset300C
1A3 2EA0 MOV R10,R16
(0051) }
(0052) }
(0053) /* ********************** */
(0054) void send_bitB(uc_8 b){
(0055) switch(b){
1A4 2D4A MOV R20,R10
1A5 2755 CLR R21
1A6 3040 CPI R20,0
1A7 0745 CPC R20,R21
1A8 F029 BEQ 0x01AE
1A9 3041 CPI R20,1
1AA E0E0 LDI R30,0
1AB 075E CPC R21,R30
1AC F041 BEQ 0x01B5
1AD C00A RJMP 0x01B8
(0056) case 0: PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);break;//clock(); break;
1AE B228 IN R2,0x18
1AF BA28 OUT 0x18,R2
1B0 DE84 RCALL _clock
1B1 B388 IN R24,0x18
1B2 7F8F ANDI R24,0xFF
1B3 BB88 OUT 0x18,R24
1B4 C003 RJMP 0x01B8
(0057) case 1: PORTB|=(1<<PORTB1);clock();PORTB&=~(1<<PORTB1);break;
1B5 9AC1 SBI 0x18,1
1B6 DE7E RCALL _clock
1B7 98C1 CBI 0x18,1
1B8 C1BB RJMP pop_xgset300C
_send_bitAB:
b --> R20
a --> R22
1B9 D1D7 RCALL push_xgsetF03C
1BA 2F42 MOV R20,R18
1BB 2F60 MOV R22,R16
(0058) }
(0059) }
(0060) /* ********************** */
(0061) void send_bitAB(uc_8 a,uc_8 b){
(0062)
(0063) if(a==0&b==0) {PORTB|=zero;clock();PORTB&=~zero;}
1BC 2366 TST R22
1BD F421 BNE 0x01C2
1BE E081 LDI R24,1
1BF E090 LDI R25,0
1C0 016C MOVW R12,R24
1C1 C002 RJMP 0x01C4
1C2 24CC CLR R12
1C3 24DD CLR R13
1C4 2344 TST R20
1C5 F421 BNE 0x01CA
1C6 E081 LDI R24,1
1C7 E090 LDI R25,0
1C8 015C MOVW R10,R24
1C9 C002 RJMP 0x01CC
1CA 24AA CLR R10
1CB 24BB CLR R11
1CC 0116 MOVW R2,R12
1CD 202A AND R2,R10
1CE 203B AND R3,R11
1CF 2022 TST R2
1D0 F411 BNE 0x01D3
1D1 2033 TST R3
1D2 F031 BEQ 0x01D9
1D3 B228 IN R2,0x18
1D4 BA28 OUT 0x18,R2
1D5 DE5F RCALL _clock
1D6 B388 IN R24,0x18
1D7 7F8F ANDI R24,0xFF
1D8 BB88 OUT 0x18,R24
(0064) if(a==0&b==1) {PORTB|=unu;clock();PORTB&=~unu;}
1D9 2366 TST R22
1DA F421 BNE 0x01DF
1DB E081 LDI R24,1
1DC E090 LDI R25,0
1DD 016C MOVW R12,R24
1DE C002 RJMP 0x01E1
1DF 24CC CLR R12
1E0 24DD CLR R13
1E1 3041 CPI R20,1
1E2 F421 BNE 0x01E7
1E3 E081 LDI R24,1
1E4 E090 LDI R25,0
1E5 015C MOVW R10,R24
1E6 C002 RJMP 0x01E9
1E7 24AA CLR R10
1E8 24BB CLR R11
1E9 0116 MOVW R2,R12
1EA 202A AND R2,R10
1EB 203B AND R3,R11
1EC 2022 TST R2
1ED F411 BNE 0x01F0
1EE 2033 TST R3
1EF F019 BEQ 0x01F3
1F0 9AC0 SBI 0x18,0
1F1 DE43 RCALL _clock
1F2 98C0 CBI 0x18,0
(0065) if(a==1&b==0) {PORTB|=doi;clock();PORTB&=~doi;}
1F3 3061 CPI R22,1
1F4 F421 BNE 0x01F9
1F5 E081 LDI R24,1
1F6 E090 LDI R25,0
1F7 016C MOVW R12,R24
1F8 C002 RJMP 0x01FB
1F9 24CC CLR R12
1FA 24DD CLR R13
1FB 2344 TST R20
1FC F421 BNE 0x0201
1FD E081 LDI R24,1
1FE E090 LDI R25,0
1FF 015C MOVW R10,R24
200 C002 RJMP 0x0203
201 24AA CLR R10
202 24BB CLR R11
203 0116 MOVW R2,R12
204 202A AND R2,R10
205 203B AND R3,R11
206 2022 TST R2
207 F411 BNE 0x020A
208 2033 TST R3
209 F019 BEQ 0x020D
20A 9AC1 SBI 0x18,1
20B DE29 RCALL _clock
20C 98C1 CBI 0x18,1
(0066) if(a==1&b==1) {PORTB|=trei;clock();PORTB&=~trei;}
20D 3061 CPI R22,1
20E F419 BNE 0x0212
20F E061 LDI R22,1
210 E070 LDI R23,0
211 C002 RJMP 0x0214
212 2766 CLR R22
213 2777 CLR R23
214 3041 CPI R20,1
215 F419 BNE 0x0219
216 E041 LDI R20,1
217 E050 LDI R21,0
218 C002 RJMP 0x021B
219 2744 CLR R20
21A 2755 CLR R21
21B 011B MOVW R2,R22
21C 2224 AND R2,R20
21D 2235 AND R3,R21
21E 2022 TST R2
21F F411 BNE 0x0222
220 2033 TST R3
221 F039 BEQ 0x0229
222 B388 IN R24,0x18
223 6083 ORI R24,3
224 BB88 OUT 0x18,R24
225 DE0F RCALL _clock
226 B388 IN R24,0x18
227 7F8C ANDI R24,0xFC
228 BB88 OUT 0x18,R24
229 C170 RJMP pop_xgsetF03C
_afisheaza_A:
j --> R20
img --> R10
22A 92AA ST R10,-Y
22B 934A ST R20,-Y
22C 2EA0 MOV R10,R16
22D 972D SBIW R28,0xD
(0067) }
(0068) /* ********************** */
(0069) void afisheaza_A(uc_8 img){
(0070) uc_8 j;
(0071) linie_goala(10);
22E E00A LDI R16,0xA
22F D060 RCALL _linie_goala
(0072) for(j=0;j<5;j++) send_octetA(zecimal_binar(fig_dec(img).c[j]));
230 2744 CLR R20
231 C012 RJMP 0x0244
232 2D2A MOV R18,R10
233 018E MOVW R16,R28
234 DE27 RCALL _fig_dec
235 01CE MOVW R24,R28
236 2FE4 MOV R30,R20
237 27FF CLR R31
238 0FE8 ADD R30,R24
239 1FF9 ADC R31,R25
23A 8120 LDD R18,Z+0
23B 018E MOVW R16,R28
23C 5F0B SUBI R16,0xFB
23D 4F1F SBCI R17,0xFF
23E D077 RCALL _zecimal_binar
23F 018E MOVW R16,R28
240 5F0B SUBI R16,0xFB
241 4F1F SBCI R17,0xFF
242 DEEB RCALL _send_octetA
243 9543 INC R20
244 3045 CPI R20,5
245 F360 BCS 0x0232
(0073) linie_goala(10);
246 E00A LDI R16,0xA
247 D048 RCALL _linie_goala
248 962D ADIW R28,0xD
249 9149 LD R20,Y+
24A 90A9 LD R10,Y+
24B 9508 RET
_afisheaza_B:
j --> R20
img --> R10
24C 92AA ST R10,-Y
24D 934A ST R20,-Y
24E 2EA0 MOV R10,R16
24F 972D SBIW R28,0xD
(0074) }
(0075)
(0076) /* ********************** */
(0077) void afisheaza_B(uc_8 img){
(0078) uc_8 j;
(0079) linie_goala(10);
250 E00A LDI R16,0xA
251 D03E RCALL _linie_goala
(0080) for(j=0;j<5;j++) send_octetB(zecimal_binar(fig_dec(img).c[j]));
252 2744 CLR R20
253 C012 RJMP 0x0266
254 2D2A MOV R18,R10
255 018E MOVW R16,R28
256 DE05 RCALL _fig_dec
257 01CE MOVW R24,R28
258 2FE4 MOV R30,R20
259 27FF CLR R31
25A 0FE8 ADD R30,R24
25B 1FF9 ADC R31,R25
25C 8120 LDD R18,Z+0
25D 018E MOVW R16,R28
25E 5F0B SUBI R16,0xFB
25F 4F1F SBCI R17,0xFF
260 D055 RCALL _zecimal_binar
261 018E MOVW R16,R28
262 5F0B SUBI R16,0xFB
263 4F1F SBCI R17,0xFF
264 DED7 RCALL _send_octetB
265 9543 INC R20
266 3045 CPI R20,5
267 F360 BCS 0x0254
(0081) linie_goala(10);
268 E00A LDI R16,0xA
269 D026 RCALL _linie_goala
26A 962D ADIW R28,0xD
26B 9149 LD R20,Y+
26C 90A9 LD R10,Y+
26D 9508 RET
_afisheaza_AB:
j --> R20
img --> R10
26E 92AA ST R10,-Y
26F 934A ST R20,-Y
270 2EA0 MOV R10,R16
271 972D SBIW R28,0xD
(0082) }
(0083)
(0084) /* ********************** */
(0085) void afisheaza_AB(uc_8 img){
(0086) uc_8 j;
(0087) linie_goala_AB(5);
272 E005 LDI R16,5
273 D02F RCALL _linie_goala_AB
(0088) for(j=0;j<5;j++) send_octetAB(zecimal_binar(fig_dec(img).c[j]));
274 2744 CLR R20
275 C012 RJMP 0x0288
276 2D2A MOV R18,R10
277 018E MOVW R16,R28
278 DDE3 RCALL _fig_dec
279 01CE MOVW R24,R28
27A 2FE4 MOV R30,R20
27B 27FF CLR R31
27C 0FE8 ADD R30,R24
27D 1FF9 ADC R31,R25
27E 8120 LDD R18,Z+0
27F 018E MOVW R16,R28
280 5F0B SUBI R16,0xFB
281 4F1F SBCI R17,0xFF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -