📄 pc_8515.lst
字号:
(0072) }
(0073) default:{
(0074) if (shift==0)
0158 90200071 LDS R2,0x71
015A 2022 TST R2
015B F009 BEQ 0x015D
015C C01A RJMP 0x0177
(0075) {
(0076) for(i = 0;unshifted[i][0]!=sc && unshifted[i][0]; i++);
015D 2744 CLR R20
015E C001 RJMP 0x0160
015F 9543 INC R20
0160 E18A LDI R24,0x1A
0161 D0E0 RCALL <created procedures>
0162 2C20 MOV R2,R0
0163 2433 CLR R3
0164 2E46 MOV R4,R22
0165 2455 CLR R5
0166 1424 CP R2,R4
0167 0435 CPC R3,R5
0168 F021 BEQ 0x016D
0169 2022 TST R2
016A F7A1 BNE 0x015F
016B 2033 TST R3
016C F791 BNE 0x015F
(0077) if (unshifted[i][0] == sc)
016D E18A LDI R24,0x1A
016E D0D3 RCALL <created procedures>
016F 1606 CP R0,R22
0170 F009 BEQ 0x0172
0171 C01D RJMP 0x018F
(0078) put_kbbuff(unshifted[i][1]);
0172 E18B LDI R24,0x1B
0173 D0CE RCALL <created procedures>
0174 2D00 MOV R16,R0
0175 DF6B RCALL _put_kbbuff
(0079) }
0176 C018 RJMP 0x018F
(0080) else
(0081) {
(0082) for(i = 0;shifted[i][0]!=sc && shifted[i][0]; i++);
0177 2744 CLR R20
0178 C001 RJMP 0x017A
0179 9543 INC R20
017A EA82 LDI R24,0xA2
017B D0C6 RCALL <created procedures>
017C 2C20 MOV R2,R0
017D 2433 CLR R3
017E 2E46 MOV R4,R22
017F 2455 CLR R5
0180 1424 CP R2,R4
0181 0435 CPC R3,R5
0182 F021 BEQ 0x0187
0183 2022 TST R2
0184 F7A1 BNE 0x0179
0185 2033 TST R3
0186 F791 BNE 0x0179
(0083) if (shifted[i][0] == sc)
0187 EA82 LDI R24,0xA2
0188 D0B9 RCALL <created procedures>
0189 1606 CP R0,R22
018A F421 BNE 0x018F
(0084) {
(0085) put_kbbuff(shifted[i][1]);
018B EA83 LDI R24,0xA3
018C D0B5 RCALL <created procedures>
018D 2D00 MOV R16,R0
018E DF52 RCALL _put_kbbuff
(0086) }
(0087) }
(0088) }
(0089) }
(0090) }
018F D086 RCALL pop_gset3
0190 9508 RET
_int0_isr:
0191 D039 RCALL push_lset
0192 D066 RCALL push_gset1
(0091) //键盘数据读取程序
(0092) #pragma interrupt_handler int0_isr:2
(0093) void int0_isr(void)
(0094) {
(0095) static unsigned char data;
(0096) switch (bitcount)
0193 914000B5 LDS R20,_bitcount
0195 2755 CLR R21
0196 3041 CPI R20,1
0197 E0E0 LDI R30,0
0198 075E CPC R21,R30
0199 F0A1 BEQ 0x01AE
019A 3042 CPI R20,2
019B E0E0 LDI R30,0
019C 075E CPC R21,R30
019D F071 BEQ 0x01AC
019E 3041 CPI R20,1
019F E0E0 LDI R30,0
01A0 075E CPC R21,R30
01A1 F0D4 BLT 0x01BC
01A2 304B CPI R20,0xB
01A3 E0E0 LDI R30,0
01A4 075E CPC R21,R30
01A5 F009 BEQ 0x01A7
01A6 C015 RJMP 0x01BC
(0097) {
(0098) case 11:{
(0099) if ((PIN_KB&(1<<DATAPIN))!=0)
01A7 9B83 SBIS P10,3
01A8 C001 RJMP 0x01AA
(0100) return;
01A9 C01E RJMP 0x01C8
(0101) else
(0102) bitcount--;
01AA D0A2 RCALL 0x024D
(0103) break;}
01AB C01C RJMP 0x01C8
(0104) case 2:{
(0105) bitcount--;
01AC D0A0 RCALL 0x024D
(0106) break;}
01AD C01A RJMP 0x01C8
(0107) case 1:{
(0108) bitcount--;
01AE D09E RCALL 0x024D
(0109) if ((PIN_KB&(1<<DATAPIN))==0)
01AF 9983 SBIC P10,3
01B0 C004 RJMP 0x01B5
(0110) {
(0111) bitcount=11;
01B1 E08B LDI R24,0xB
01B2 938000B5 STS R24,_bitcount
(0112) return;
01B4 C013 RJMP 0x01C8
(0113) }
(0114) else
(0115) {
(0116) bitcount=11;
01B5 E08B LDI R24,0xB
01B6 938000B5 STS R24,_bitcount
(0117) decode(data);
01B8 91000074 LDS R16,0x74
01BA DF60 RCALL _decode
(0118) }
(0119) break;}
01BB C00C RJMP 0x01C8
(0120) default:{
(0121) data = (data >> 1);
01BC 90200074 LDS R2,0x74
01BE 9426 LSR R2
01BF 92200074 STS R2,0x74
(0122) if((PIN_KB&(1<<DATAPIN))!=0)
01C1 9B83 SBIS P10,3
01C2 C004 RJMP 0x01C7
(0123) data|=0x80;
01C3 2D82 MOV R24,R2
01C4 6880 ORI R24,0x80
01C5 93800074 STS R24,0x74
(0124) bitcount--;
01C7 D085 RCALL 0x024D
(0125) }
(0126) }
(0127) }
FILE: <library>
01C8 D033 RCALL pop_gset1
01C9 D018 RCALL pop_lset
01CA 9518 RETI
push_lset:
01CB 93FA ST R31,-Y
01CC 93EA ST R30,-Y
01CD 93BA ST R27,-Y
01CE 93AA ST R26,-Y
01CF 939A ST R25,-Y
01D0 938A ST R24,-Y
01D1 933A ST R19,-Y
01D2 932A ST R18,-Y
01D3 931A ST R17,-Y
01D4 930A ST R16,-Y
01D5 929A ST R9,-Y
01D6 928A ST R8,-Y
01D7 927A ST R7,-Y
01D8 926A ST R6,-Y
01D9 925A ST R5,-Y
01DA 924A ST R4,-Y
01DB 923A ST R3,-Y
01DC 922A ST R2,-Y
01DD 921A ST R1,-Y
01DE 920A ST R0,-Y
01DF B60F IN R0,P3F
01E0 920A ST R0,-Y
01E1 9508 RET
pop_lset:
01E2 9009 LD R0,Y+
01E3 BE0F OUT P3F,R0
01E4 9009 LD R0,Y+
01E5 9019 LD R1,Y+
01E6 9029 LD R2,Y+
01E7 9039 LD R3,Y+
01E8 9049 LD R4,Y+
01E9 9059 LD R5,Y+
01EA 9069 LD R6,Y+
01EB 9079 LD R7,Y+
01EC 9089 LD R8,Y+
01ED 9099 LD R9,Y+
01EE 9109 LD R16,Y+
01EF 9119 LD R17,Y+
01F0 9129 LD R18,Y+
01F1 9139 LD R19,Y+
01F2 9189 LD R24,Y+
01F3 9199 LD R25,Y+
01F4 91A9 LD R26,Y+
01F5 91B9 LD R27,Y+
01F6 91E9 LD R30,Y+
01F7 91F9 LD R31,Y+
01F8 9508 RET
push_gset1:
01F9 935A ST R21,-Y
01FA 934A ST R20,-Y
01FB 9508 RET
pop_gset1:
01FC E0E1 LDI R30,1
pop:
01FD 9149 LD R20,Y+
01FE 9159 LD R21,Y+
01FF FDE0 SBRC R30,0
0200 9508 RET
0201 9169 LD R22,Y+
0202 9179 LD R23,Y+
0203 FDE1 SBRC R30,1
0204 9508 RET
0205 90A9 LD R10,Y+
0206 90B9 LD R11,Y+
0207 FDE2 SBRC R30,2
0208 9508 RET
0209 90C9 LD R12,Y+
020A 90D9 LD R13,Y+
020B FDE3 SBRC R30,3
020C 9508 RET
020D 90E9 LD R14,Y+
020E 90F9 LD R15,Y+
020F 9508 RET
push_gset2:
0210 937A ST R23,-Y
0211 936A ST R22,-Y
0212 CFE6 RJMP push_gset1
push_gset3:
0213 92BA ST R11,-Y
0214 92AA ST R10,-Y
0215 CFFA RJMP push_gset2
pop_gset3:
0216 E0E4 LDI R30,4
0217 CFE5 RJMP pop
_putchar:
0218 DFE0 RCALL push_gset1
0219 2F40 MOV R20,R16
021A 903000B7 LDS R3,__textmode+1
021C 902000B6 LDS R2,__textmode
021E 2022 TST R2
021F F411 BNE 0x0222
0220 2033 TST R3
0221 F021 BEQ 0x0226
0222 304A CPI R20,0xA
0223 F411 BNE 0x0226
0224 E00D LDI R16,0xD
0225 DFF2 RCALL _putchar
0226 9B5D SBIS P0B,5
0227 CFFE RJMP 0x0226
0228 B94C OUT P0C,R20
0229 2F04 MOV R16,R20
022A 2711 CLR R17
022B DFD0 RCALL pop_gset1
022C 9508 RET
_puts:
022D DFCB RCALL push_gset1
022E 2F40 MOV R20,R16
022F 2F51 MOV R21,R17
0230 C006 RJMP 0x0237
0231 2FE4 MOV R30,R20
0232 2FF5 MOV R31,R21
0233 8100 LDD R16,0+Z
0234 DFE3 RCALL _putchar
0235 5F4F SUBI R20,0xFF
0236 4F5F SBCI R21,0xFF
0237 2FE4 MOV R30,R20
0238 2FF5 MOV R31,R21
0239 8020 LDD R2,0+Z
023A 2022 TST R2
023B F7A9 BNE 0x0231
023C E00A LDI R16,0xA
023D DFDA RCALL _putchar
023E E001 LDI R16,1
023F E010 LDI R17,0
0240 DFBB RCALL pop_gset1
0241 9508 RET
<created procedures>:
0242 E090 LDI R25,0
0243 2E24 MOV R2,R20
0244 2433 CLR R3
0245 0C22 LSL R2
0246 1C33 ROL R3
0247 0E28 ADD R2,R24
0248 1E39 ADC R3,R25
0249 2DE2 MOV R30,R2
024A 2DF3 MOV R31,R3
024B 95C8 LPM
024C 9508 RET
024D 918000B5 LDS R24,_bitcount
024F 5081 SUBI R24,1
0250 938000B5 STS R24,_bitcount
0252 9508 RET
0253 E081 LDI R24,1
0254 93800071 STS R24,0x71
0256 93800073 STS R24,0x73
0258 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -