📄 h4001.lis
字号:
01F4 2CBC out 0x2c,R2
01F6 .dbline 177
01F6 ; if ((tcomp>1500 & tcomp<2500)|(tcomp>3000 & tcomp<5000)) { //判断是否为合法跳变
01F6 8CED ldi R24,1500
01F8 95E0 ldi R25,5
01FA 20900400 lds R2,_tcomp
01FE 30900500 lds R3,_tcomp+1
0202 8215 cp R24,R2
0204 9305 cpc R25,R3
0206 20F4 brsh L46
0208 81E0 ldi R24,1
020A 90E0 ldi R25,0
020C 6C01 movw R12,R24
020E 02C0 xjmp L47
0210 L46:
0210 CC24 clr R12
0212 DD24 clr R13
0214 L47:
0214 80910400 lds R24,_tcomp
0218 90910500 lds R25,_tcomp+1
021C 843C cpi R24,196
021E E9E0 ldi R30,9
0220 9E07 cpc R25,R30
0222 20F4 brsh L48
0224 81E0 ldi R24,1
0226 90E0 ldi R25,0
0228 5C01 movw R10,R24
022A 02C0 xjmp L49
022C L48:
022C AA24 clr R10
022E BB24 clr R11
0230 L49:
0230 88EB ldi R24,3000
0232 9BE0 ldi R25,11
0234 20900400 lds R2,_tcomp
0238 30900500 lds R3,_tcomp+1
023C 8215 cp R24,R2
023E 9305 cpc R25,R3
0240 18F4 brsh L50
0242 41E0 ldi R20,1
0244 50E0 ldi R21,0
0246 02C0 xjmp L51
0248 L50:
0248 4427 clr R20
024A 5527 clr R21
024C L51:
024C 80910400 lds R24,_tcomp
0250 90910500 lds R25,_tcomp+1
0254 8838 cpi R24,136
0256 E3E1 ldi R30,19
0258 9E07 cpc R25,R30
025A 20F4 brsh L52
025C 81E0 ldi R24,1
025E 90E0 ldi R25,0
0260 7C01 movw R14,R24
0262 02C0 xjmp L53
0264 L52:
0264 EE24 clr R14
0266 FF24 clr R15
0268 L53:
0268 1A01 movw R2,R20
026A 2E20 and R2,R14
026C 3F20 and R3,R15
026E 2601 movw R4,R12
0270 4A20 and R4,R10
0272 5B20 and R5,R11
0274 4228 or R4,R2
0276 5328 or R5,R3
0278 4420 tst R4
027A 19F4 brne X3
027C 5520 tst R5
027E 09F4 brne X8
0280 6DC0 xjmp L44
0282 X8:
0282 X3:
0282 .dbline 177
0282 .dbline 178
0282 ; if (tcomp>1500 & tcomp<2500) {
0282 8CED ldi R24,1500
0284 95E0 ldi R25,5
0286 20900400 lds R2,_tcomp
028A 30900500 lds R3,_tcomp+1
028E 8215 cp R24,R2
0290 9305 cpc R25,R3
0292 20F4 brsh L56
0294 81E0 ldi R24,1
0296 90E0 ldi R25,0
0298 6C01 movw R12,R24
029A 02C0 xjmp L57
029C L56:
029C CC24 clr R12
029E DD24 clr R13
02A0 L57:
02A0 80910400 lds R24,_tcomp
02A4 90910500 lds R25,_tcomp+1
02A8 843C cpi R24,196
02AA E9E0 ldi R30,9
02AC 9E07 cpc R25,R30
02AE 20F4 brsh L58
02B0 81E0 ldi R24,1
02B2 90E0 ldi R25,0
02B4 5C01 movw R10,R24
02B6 02C0 xjmp L59
02B8 L58:
02B8 AA24 clr R10
02BA BB24 clr R11
02BC L59:
02BC 1601 movw R2,R12
02BE 2A20 and R2,R10
02C0 3B20 and R3,R11
02C2 2220 tst R2
02C4 11F4 brne X4
02C6 3320 tst R3
02C8 C1F0 breq L54
02CA X4:
02CA .dbline 178
02CA .dbline 179
02CA ; if (half==1) {
02CA 80910700 lds R24,_half
02CE 8130 cpi R24,1
02D0 81F4 brne L60
02D2 .dbline 179
02D2 .dbline 180
02D2 ; half=0;
02D2 2224 clr R2
02D4 20920700 sts _half,R2
02D8 .dbline 181
02D8 ; decode[j]=lastbit;
02D8 80E0 ldi R24,<_decode
02DA 90E0 ldi R25,>_decode
02DC E981 ldd R30,y+1
02DE FF27 clr R31
02E0 E80F add R30,R24
02E2 F91F adc R31,R25
02E4 20900600 lds R2,_lastbit
02E8 2082 std z+0,R2
02EA .dbline 182
02EA ; j++;
02EA 0980 ldd R0,y+1
02EC 0394 inc R0
02EE 0982 std y+1,R0
02F0 .dbline 183
02F0 ; }
02F0 35C0 xjmp L55
02F2 L60:
02F2 .dbline 185
02F2 ; else
02F2 ; half=1;
02F2 81E0 ldi R24,1
02F4 80930700 sts _half,R24
02F8 .dbline 186
02F8 ; }
02F8 31C0 xjmp L55
02FA L54:
02FA .dbline 188
02FA ; else
02FA ; { // (tcomp>3000 & tcomp<5000)
02FA .dbline 189
02FA ; if (half==1)
02FA 80910700 lds R24,_half
02FE 8130 cpi R24,1
0300 D1F4 brne L62
0302 .dbline 190
0302 ; {
0302 .dbline 191
0302 ; if (lastbit==0) {
0302 20900600 lds R2,_lastbit
0306 2220 tst R2
0308 49F4 brne L64
030A .dbline 191
030A .dbline 192
030A ; decode[j]=1;
030A 80E0 ldi R24,<_decode
030C 90E0 ldi R25,>_decode
030E E981 ldd R30,y+1
0310 FF27 clr R31
0312 E80F add R30,R24
0314 F91F adc R31,R25
0316 81E0 ldi R24,1
0318 8083 std z+0,R24
031A .dbline 193
031A ; }
031A 1AC0 xjmp L63
031C L64:
031C .dbline 195
031C ; else
031C ; {
031C .dbline 196
031C ; if (lastbit==1) {
031C 80910600 lds R24,_lastbit
0320 8130 cpi R24,1
0322 B1F4 brne L63
0324 .dbline 196
0324 .dbline 197
0324 ; decode[j]=0;
0324 80E0 ldi R24,<_decode
0326 90E0 ldi R25,>_decode
0328 E981 ldd R30,y+1
032A FF27 clr R31
032C E80F add R30,R24
032E F91F adc R31,R25
0330 2224 clr R2
0332 2082 std z+0,R2
0334 .dbline 198
0334 ; }
0334 .dbline 199
0334 ; }
0334 .dbline 200
0334 ; }
0334 0DC0 xjmp L63
0336 L62:
0336 .dbline 202
0336 ; else
0336 ; {
0336 .dbline 203
0336 ; decode[j]=0x0E;
0336 80E0 ldi R24,<_decode
0338 90E0 ldi R25,>_decode
033A E981 ldd R30,y+1
033C FF27 clr R31
033E E80F add R30,R24
0340 F91F adc R31,R25
0342 8EE0 ldi R24,14
0344 8083 std z+0,R24
0346 .dbline 204
0346 ; if (j<127) {
0346 8981 ldd R24,y+1
0348 8F37 cpi R24,127
034A A8F4 brsh L33
034C .dbline 204
034C .dbline 205
034C ; bits=0;
034C 6627 clr R22
034E 7727 clr R23
0350 .dbline 206
0350 ; }
0350 .dbline 208
0350 ; else
0350 ; break;
0350 L69:
0350 .dbline 209
0350 ; }
0350 L63:
0350 .dbline 210
0350 ; j++;
0350 0980 ldd R0,y+1
0352 0394 inc R0
0354 0982 std y+1,R0
0356 .dbline 211
0356 ; half=1;
0356 81E0 ldi R24,1
0358 80930700 sts _half,R24
035C .dbline 212
035C ; }
035C L55:
035C .dbline 213
035C ; }
035C L44:
035C .dbline 214
035C 81E0 ldi R24,1
035E 20900600 lds R2,_lastbit
0362 2826 eor R2,R24
0364 20920600 sts _lastbit,R2
0368 .dbline 215
0368 L32:
0368 .dbline 171
0368 6F5F subi R22,255 ; offset = 1
036A 7F4F sbci R23,255
036C L34:
036C .dbline 171
036C 6030 cpi R22,0
036E E1E0 ldi R30,1
0370 7E07 cpc R23,R30
0372 08F4 brsh X9
0374 11CF xjmp L36
0376 X9:
0376 L33:
0376 .dbline 217
0376 ; lastbit^=0x01;
0376 ; }
0376 ;
0376 ; j=0;
0376 0024 clr R0
0378 0982 std y+1,R0
037A .dbline 218
037A ; head=0;
037A 2224 clr R2
037C 20920300 sts _head,R2
0380 .dbline 219
0380 ; post=0;
0380 20920100 sts _post,R2
0384 .dbline 220
0384 ; error=0;
0384 20920000 sts _error,R2
0388 .dbline 221
0388 ; for (i=0;i<128;i++)
0388 0882 std y+0,R0
038A CEC0 xjmp L73
038C L70:
038C .dbline 222
038C ; { //查找最后一个终止位(0),及9位(1)引导位
038C .dbline 223
038C ; if ((decode[i]==0)&(decode[i+1]==1)&(decode[i+2]==1)&(decode[i+3]==1)&(decode[i+4]==1)&(decode[i+5]==1)&(decode[i+6]==1)&(decode[i+7]==1)&(decode[i+8]==1)&(decode[i+9]==1)) {
038C 80E0 ldi R24,<_decode
038E 90E0 ldi R25,>_decode
0390 E881 ldd R30,y+0
0392 FF27 clr R31
0394 E80F add R30,R24
0396 F91F adc R31,R25
0398 2080 ldd R2,z+0
039A 2220 tst R2
039C 29F4 brne L85
039E 81E0 ldi R24,1
03A0 90E0 ldi R25,0
03A2 9D83 std y+5,R25
03A4 8C83 std y+4,R24
03A6 04C0 xjmp L86
03A8 L85:
03A8 0024 clr R0
03AA 1124 clr R1
03AC 1D82 std y+5,R1
03AE 0C82 std y+4,R0
03B0 L86:
03B0 80E0 ldi R24,<_decode+1
03B2 90E0 ldi R25,>_decode+1
03B4 E881 ldd R30,y+0
03B6 FF27 clr R31
03B8 E80F add R30,R24
03BA F91F adc R31,R25
03BC 8081 ldd R24,z+0
03BE 8130 cpi R24,1
03C0 29F4 brne L87
03C2 81E0 ldi R24,1
03C4 90E0 ldi R25,0
03C6 9B83 std y+3,R25
03C8 8A83 std y+2,R24
03CA 04C0 xjmp L88
03CC L87:
03CC 0024 clr R0
03CE 1124 clr R1
03D0 1B82 std y+3,R1
03D2 0A82 std y+2,R0
03D4 L88:
03D4 80E0 ldi R24,<_decode+2
03D6 90E0 ldi R25,>_decode+2
03D8 E881 ldd R30,y+0
03DA FF27 clr R31
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -