📄 mega8bj.lst
字号:
00DE C00A RJMP 0x00E9
(0118) else if(keynm==3)//enter
00DF 3063 CPI R22,3
00E0 E0E0 LDI R30,0
00E1 077E CPC R23,R30
00E2 F431 BNE 0x00E9
(0119) {smode=0;
00E3 2422 CLR R2
00E4 2433 CLR R3
00E5 92300079 STS smode+1,R3
00E7 92200078 STS smode,R2
(0120) //save set value
(0121) }
(0122)
(0123) if(smode)
00E9 90200078 LDS R2,smode
00EB 90300079 LDS R3,smode+1
00ED 2022 TST R2
00EE F419 BNE 0x00F2
00EF 2033 TST R3
00F0 F409 BNE 0x00F2
00F1 C08D RJMP 0x017F
(0124) {i=smode-1;
00F2 91400078 LDS R20,smode
00F4 91500079 LDS R21,smode+1
00F6 5041 SUBI R20,1
00F7 4050 SBCI R21,0
(0125) switch(keynm)
00F8 3061 CPI R22,1
00F9 E0E0 LDI R30,0
00FA 077E CPC R23,R30
00FB F409 BNE 0x00FD
00FC C035 RJMP 0x0132
00FD 3062 CPI R22,2
00FE E0E0 LDI R30,0
00FF 077E CPC R23,R30
0100 F009 BEQ 0x0102
0101 C05E RJMP 0x0160
(0126) {case 2:
(0127) temp[i]++;
0102 E68C LDI R24,0x6C
0103 E090 LDI R25,0
0104 011A MOVW R2,R20
0105 0E28 ADD R2,R24
0106 1E39 ADC R3,R25
0107 01F1 MOVW R30,R2
0108 8180 LDD R24,Z+0
0109 5F8F SUBI R24,0xFF
010A 8380 STD Z+0,R24
(0128) if(temp[0]==temp[1])temp[0]=temp[1]-1;
010B 9020006D LDS R2,temp+1
010D 9030006C LDS R3,temp
010F 1432 CP R3,R2
0110 F421 BNE 0x0115
0111 2D82 MOV R24,R2
0112 5081 SUBI R24,1
0113 9380006C STS temp,R24
(0129) if(temp[1]==temp[2])temp[1]=temp[2]-1;
0115 9020006E LDS R2,temp+2
0117 9030006D LDS R3,temp+1
0119 1432 CP R3,R2
011A F421 BNE 0x011F
011B 2D82 MOV R24,R2
011C 5081 SUBI R24,1
011D 9380006D STS temp+1,R24
(0130) if(temp[2]==temp[3])temp[2]=temp[3]-1;
011F 9020006F LDS R2,temp+3
0121 9030006E LDS R3,temp+2
0123 1432 CP R3,R2
0124 F421 BNE 0x0129
0125 2D82 MOV R24,R2
0126 5081 SUBI R24,1
0127 9380006E STS temp+2,R24
(0131) if(temp[3]==99)temp[3]=98;
0129 9180006F LDS R24,temp+3
012B 3683 CPI R24,0x63
012C F009 BEQ 0x012E
012D C032 RJMP 0x0160
012E E682 LDI R24,0x62
012F 9380006F STS temp+3,R24
(0132) break;
0131 C02E RJMP 0x0160
(0133)
(0134) case 1:
(0135) temp[i]--;
0132 E68C LDI R24,0x6C
0133 E090 LDI R25,0
0134 011A MOVW R2,R20
0135 0E28 ADD R2,R24
0136 1E39 ADC R3,R25
0137 01F1 MOVW R30,R2
0138 8180 LDD R24,Z+0
0139 5081 SUBI R24,1
013A 8380 STD Z+0,R24
(0136) if(temp[0]==0)temp[0]=1;
013B 9020006C LDS R2,temp
013D 2022 TST R2
013E F419 BNE 0x0142
013F E081 LDI R24,1
0140 9380006C STS temp,R24
(0137) if(temp[1]==temp[0])temp[1]=temp[0]+1;
0142 9020006C LDS R2,temp
0144 9030006D LDS R3,temp+1
0146 1432 CP R3,R2
0147 F421 BNE 0x014C
0148 2D82 MOV R24,R2
0149 5F8F SUBI R24,0xFF
014A 9380006D STS temp+1,R24
(0138) if(temp[2]==temp[1])temp[2]=temp[1]+1;
014C 9020006D LDS R2,temp+1
014E 9030006E LDS R3,temp+2
0150 1432 CP R3,R2
0151 F421 BNE 0x0156
0152 2D82 MOV R24,R2
0153 5F8F SUBI R24,0xFF
0154 9380006E STS temp+2,R24
(0139) if(temp[3]==temp[2])temp[3]=temp[2]+1;
0156 9020006E LDS R2,temp+2
0158 9030006F LDS R3,temp+3
015A 1432 CP R3,R2
015B F421 BNE 0x0160
015C 2D82 MOV R24,R2
015D 5F8F SUBI R24,0xFF
015E 9380006F STS temp+3,R24
(0140) break;
(0141) default:break;
(0142) }
(0143) dis[0]=smode;dis[1]=11;
0160 90200078 LDS R2,smode
0162 90300079 LDS R3,smode+1
0164 92200074 STS dis,R2
0166 E08B LDI R24,0xB
0167 93800075 STS dis+1,R24
(0144) dis[2]=temp[i]/10;
0169 E68C LDI R24,0x6C
016A E090 LDI R25,0
016B 01FA MOVW R30,R20
016C 0FE8 ADD R30,R24
016D 1FF9 ADC R31,R25
016E 8100 LDD R16,Z+0
016F E01A LDI R17,0xA
0170 D05B RCALL div8u
0171 93000076 STS dis+2,R16
(0145) dis[3]=temp[i]%10;
0173 E68C LDI R24,0x6C
0174 E090 LDI R25,0
0175 01FA MOVW R30,R20
0176 0FE8 ADD R30,R24
0177 1FF9 ADC R31,R25
0178 8100 LDD R16,Z+0
0179 E01A LDI R17,0xA
017A D04F RCALL mod8u
017B 93000077 STS dis+3,R16
(0146) display();
017D DEC7 RCALL _display
(0147) }
017E C02D RJMP 0x01AC
(0148) else
(0149) {
(0150) //disnm=ADC;
(0151) //disnm=ADC;
(0152) dis[0]=disnm/1000;
017F EE28 LDI R18,0xE8
0180 E033 LDI R19,3
0181 9100007A LDS R16,disnm
0183 9110007B LDS R17,disnm+1
0185 D02A RCALL div16u
0186 93000074 STS dis,R16
(0153) dis[1]=disnm/100;dis[1]=dis[1]%10;
0188 E624 LDI R18,0x64
0189 E030 LDI R19,0
018A 9100007A LDS R16,disnm
018C 9110007B LDS R17,disnm+1
018E D021 RCALL div16u
018F 93000075 STS dis+1,R16
0191 E01A LDI R17,0xA
0192 D037 RCALL mod8u
0193 93000075 STS dis+1,R16
(0154) dis[2]=disnm/10;dis[2]=dis[2]%10;
0195 E02A LDI R18,0xA
0196 E030 LDI R19,0
0197 9100007A LDS R16,disnm
0199 9110007B LDS R17,disnm+1
019B D014 RCALL div16u
019C 93000076 STS dis+2,R16
019E E01A LDI R17,0xA
019F D02A RCALL mod8u
01A0 93000076 STS dis+2,R16
(0155) dis[3]=disnm%10;
01A2 E02A LDI R18,0xA
01A3 E030 LDI R19,0
01A4 9100007A LDS R16,disnm
01A6 9110007B LDS R17,disnm+1
01A8 D005 RCALL mod16u
01A9 93000077 STS dis+3,R16
(0156)
(0157) display();
FILE: <library>
01AB DE99 RCALL _display
01AC CF13 RJMP 0x00C0
01AD 9508 RET
mod16u:
01AE 9468 BSET 6
01AF C001 RJMP xdiv16u
div16u:
01B0 94E8 BCLR 6
xdiv16u:
01B1 92EA ST R14,-Y
01B2 92FA ST R15,-Y
01B3 938A ST R24,-Y
01B4 24EE CLR R14
01B5 24FF CLR R15
01B6 E180 LDI R24,0x10
01B7 0F00 LSL R16
01B8 1F11 ROL R17
01B9 1CEE ROL R14
01BA 1CFF ROL R15
01BB 16E2 CP R14,R18
01BC 06F3 CPC R15,R19
01BD F018 BCS 0x01C1
01BE 1AE2 SUB R14,R18
01BF 0AF3 SBC R15,R19
01C0 9503 INC R16
01C1 958A DEC R24
01C2 F7A1 BNE 0x01B7
01C3 F416 BRTC 0x01C6
01C4 2D0E MOV R16,R14
01C5 2D1F MOV R17,R15
01C6 9189 LD R24,Y+
01C7 90F9 LD R15,Y+
01C8 90E9 LD R14,Y+
01C9 9508 RET
mod8u:
01CA 9468 BSET 6
01CB C001 RJMP xdiv8u
div8u:
01CC 94E8 BCLR 6
xdiv8u:
01CD 932A ST R18,-Y
01CE 92FA ST R15,-Y
01CF 92EA ST R14,-Y
01D0 24FF CLR R15
01D1 24EE CLR R14
01D2 E120 LDI R18,0x10
01D3 0F00 LSL R16
01D4 1CFF ROL R15
01D5 1CEE ROL R14
01D6 16E1 CP R14,R17
01D7 F010 BCS 0x01DA
01D8 1AE1 SUB R14,R17
01D9 9503 INC R16
01DA 952A DEC R18
01DB F7B9 BNE 0x01D3
01DC F40E BRTC 0x01DE
01DD 2D0E MOV R16,R14
01DE 90E9 LD R14,Y+
01DF 90F9 LD R15,Y+
01E0 9129 LD R18,Y+
01E1 9508 RET
pop_gset2:
01E2 E0E2 LDI R30,2
01E3 C00C RJMP pop
push_gset5:
01E4 92FA ST R15,-Y
01E5 92EA ST R14,-Y
push_gset4:
01E6 92DA ST R13,-Y
01E7 92CA ST R12,-Y
push_gset3:
01E8 92BA ST R11,-Y
01E9 92AA ST R10,-Y
push_gset2:
01EA 937A ST R23,-Y
01EB 936A ST R22,-Y
push_gset1:
01EC 935A ST R21,-Y
01ED 934A ST R20,-Y
01EE 9508 RET
pop_gset1:
01EF E0E1 LDI R30,1
pop:
01F0 9149 LD R20,Y+
01F1 9159 LD R21,Y+
01F2 FDE0 SBRC R30,0
01F3 9508 RET
01F4 9169 LD R22,Y+
01F5 9179 LD R23,Y+
01F6 FDE1 SBRC R30,1
01F7 9508 RET
01F8 90A9 LD R10,Y+
01F9 90B9 LD R11,Y+
01FA FDE2 SBRC R30,2
01FB 9508 RET
01FC 90C9 LD R12,Y+
01FD 90D9 LD R13,Y+
01FE FDE3 SBRC R30,3
01FF 9508 RET
0200 90E9 LD R14,Y+
0201 90F9 LD R15,Y+
0202 9508 RET
lsl8:
0203 2311 TST R17
0204 F019 BEQ 0x0208
0205 0F00 LSL R16
0206 951A DEC R17
0207 CFFB RJMP lsl8
0208 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -