📄 m128.lst
字号:
(0026) }
(0027) A17_A16_low
10E6 91800062 LDS R24,0x62
10E8 7F8C ANDI R24,0xFC
10E9 93800062 STS 0x62,R24
(0028) }
10EB 940E523A CALL pop_gset5
10ED 9508 RET
_clear_screen:
data --> R16
p --> R18
j --> R20
10EE 940E520A CALL push_gset1
(0029)
(0030) void clear_screen(void)
(0031) {unsigned int j;
(0032) unsigned char data,*p;
(0033)
(0034) data =0xff;
10F0 EF0F LDI R16,0xFF
(0035) A17_high //选择外部显示Ram
10F1 91800062 LDS R24,0x62
10F3 6082 ORI R24,2
10F4 93800062 STS 0x62,R24
(0036)
(0037) SRAM_32k
10F6 9180006C LDS R24,0x6C
10F8 6081 ORI R24,1
10F9 9380006C STS 0x6C,R24
10FB 98AF CBI P15,7
(0038) p = &ADDR_0+32*1024;
10FC E020 LDI R18,0
10FD E830 LDI R19,0x80
(0039) for (j=lines_4kSram*bytes_1line;j>0;j--)
10FE E040 LDI R20,0
10FF E151 LDI R21,0x11
1100 C005 RJMP 0x1106
(0040) {*p++=data;}
1101 01F9 MOVW R30,R18
1102 9301 ST R16,Z+
1103 019F MOVW R18,R30
1104 5041 SUBI R20,1
1105 4050 SBCI R21,0
1106 3040 CPI R20,0
1107 0745 CPC R20,R21
1108 F7C1 BNE 0x1101
(0041) SRAM_64k
1109 9180006C LDS R24,0x6C
110B 7F8E ANDI R24,0xFE
110C 9380006C STS 0x6C,R24
(0042) p=&EXTERN_0;
110E E020 LDI R18,0
110F E131 LDI R19,0x11
(0043) for (j=(240-lines_4kSram)*bytes_1line;j>0;j--)
1110 E040 LDI R20,0
1111 E25B LDI R21,0x2B
1112 C005 RJMP 0x1118
(0044) {*p++=data;}
1113 01F9 MOVW R30,R18
1114 9301 ST R16,Z+
1115 019F MOVW R18,R30
1116 5041 SUBI R20,1
1117 4050 SBCI R21,0
1118 3040 CPI R20,0
1119 0745 CPC R20,R21
111A F7C1 BNE 0x1113
(0045)
(0046) A17_A16_low
111B 91800062 LDS R24,0x62
111D 7F8C ANDI R24,0xFC
111E 93800062 STS 0x62,R24
(0047) }
1120 940E520D CALL pop_gset1
1122 9508 RET
_disp16x16:
i --> R20
q --> R10
p --> R22
j --> R14
z --> R12
y --> Y+12
x --> Y+10
1123 940E51D7 CALL push_arg4
1125 940E522D CALL push_gset5
1127 84CE LDD R12,14+Y
1128 84DF LDD R13,15+Y
(0048)
(0049) void disp16x16(unsigned char x,unsigned char y,unsigned int z)
(0050) {unsigned char i,j,*p,*q;
(0051)
(0052) p=&ADDR_0+y*bytes_1line+x; //起始定位
1129 E480 LDI R24,0x40
112A 840C LDD R0,12+Y
112B 9D80 MUL R24,R0
112C 01C0 MOVW R24,R0
112D 856A LDD R22,10+Y
112E 2777 CLR R23
112F 0F68 ADD R22,R24
1130 1F79 ADC R23,R25
(0053) z=z*32; //数据定位
1131 E200 LDI R16,0x20
1132 E010 LDI R17,0
1133 0196 MOVW R18,R12
1134 940E5197 CALL empy16s
1136 0168 MOVW R12,R16
(0054) A17_high //选择外部显示Ram
1137 91800062 LDS R24,0x62
1139 6082 ORI R24,2
113A 93800062 STS 0x62,R24
(0055)
(0056) for (i=16;i>0;i--)
113C E140 LDI R20,0x10
113D C048 RJMP 0x1186
(0057) {if (y<lines_4kSram)
113E 858C LDD R24,12+Y
113F 3484 CPI R24,0x44
1140 F528 BCC 0x1166
(0058) {SRAM_32k
1141 9180006C LDS R24,0x6C
1143 6081 ORI R24,1
1144 9380006C STS 0x6C,R24
1146 98AF CBI P15,7
(0059) q=p+32*1024;
1147 01CB MOVW R24,R22
1148 5080 SUBI R24,0
1149 4890 SBCI R25,0x80
114A 015C MOVW R10,R24
(0060) for (j=2;j>0;j--)
114B E082 LDI R24,2
114C 2EE8 MOV R14,R24
114D C00F RJMP 0x115D
(0061) {*q++=~char16x16[z++];}
114E 0116 MOVW R2,R12
114F 01C1 MOVW R24,R2
1150 9601 ADIW R24,1
1151 016C MOVW R12,R24
1152 E38A LDI R24,0x3A
1153 E097 LDI R25,7
1154 01F1 MOVW R30,R2
1155 0FE8 ADD R30,R24
1156 1FF9 ADC R31,R25
1157 91E4 LPM R30,0(Z)
1158 95E0 COM R30
1159 01D5 MOVW R26,R10
115A 93ED ST R30,X+
115B 015D MOVW R10,R26
115C 94EA DEC R14
115D 2422 CLR R2
115E 142E CP R2,R14
115F F370 BCS 0x114E
(0062) SRAM_64k
1160 9180006C LDS R24,0x6C
1162 7F8E ANDI R24,0xFE
1163 9380006C STS 0x6C,R24
(0063) }
1165 C015 RJMP 0x117B
(0064) else {for (j=2;j>0;j--)
1166 E082 LDI R24,2
1167 2EE8 MOV R14,R24
1168 C00F RJMP 0x1178
(0065) {*p++=~char16x16[z++];}
1169 0116 MOVW R2,R12
116A 01C1 MOVW R24,R2
116B 9601 ADIW R24,1
116C 016C MOVW R12,R24
116D E38A LDI R24,0x3A
116E E097 LDI R25,7
116F 01F1 MOVW R30,R2
1170 0FE8 ADD R30,R24
1171 1FF9 ADC R31,R25
1172 91E4 LPM R30,0(Z)
1173 95E0 COM R30
1174 01DB MOVW R26,R22
1175 93ED ST R30,X+
1176 01BD MOVW R22,R26
1177 94EA DEC R14
1178 2422 CLR R2
1179 142E CP R2,R14
117A F370 BCS 0x1169
(0066) }
(0067) y++;
117B 840C LDD R0,12+Y
117C 9403 INC R0
117D 860C STD R0,12+Y
(0068) p=&ADDR_0+y*bytes_1line+x;
117E E480 LDI R24,0x40
117F 9D80 MUL R24,R0
1180 01C0 MOVW R24,R0
1181 856A LDD R22,10+Y
1182 2777 CLR R23
1183 0F68 ADD R22,R24
1184 1F79 ADC R23,R25
1185 954A DEC R20
1186 2422 CLR R2
1187 1624 CP R2,R20
1188 F408 BCC 0x118A
1189 CFB4 RJMP 0x113E
(0069) }
(0070) A17_A16_low
118A 91800062 LDS R24,0x62
118C 7F8C ANDI R24,0xFC
118D 93800062 STS 0x62,R24
(0071) }
118F 940E523A CALL pop_gset5
1191 9624 ADIW R28,4
1192 9508 RET
_disp16x8:
j --> Y+1
q --> R22
p --> R10
i --> R20
z --> R14
y --> R4
x --> R12
1193 940E522D CALL push_gset5
1195 2E42 MOV R4,R18
1196 2EC0 MOV R12,R16
1197 84EA LDD R14,10+Y
1198 84FB LDD R15,11+Y
(0072)
(0073) void disp16x8(unsigned char x,unsigned char y,unsigned int z)
(0074) {unsigned char i,j,*p,*q;
(0075)
(0076) p=&ADDR_0+y*bytes_1line+x; //起始定位
1199 E480 LDI R24,0x40
119A 9D84 MUL R24,R4
119B 01C0 MOVW R24,R0
119C 2CAC MOV R10,R12
119D 24BB CLR R11
119E 0EA8 ADD R10,R24
119F 1EB9 ADC R11,R25
(0077) z=z*16; //数据定位
11A0 E100 LDI R16,0x10
11A1 E010 LDI R17,0
11A2 0197 MOVW R18,R14
11A3 940E5197 CALL empy16s
11A5 0178 MOVW R14,R16
(0078) A17_high //选择外部显示Ram
11A6 91800062 LDS R24,0x62
11A8 6082 ORI R24,2
11A9 93800062 STS 0x62,R24
(0079)
(0080) for (i=16;i>0;i--)
11AB E140 LDI R20,0x10
11AC C035 RJMP 0x11E2
(0081) {if (y<lines_4kSram)
11AD 2D84 MOV R24,R4
11AE 3484 CPI R24,0x44
11AF F4E0 BCC 0x11CC
(0082) {SRAM_32k
11B0 9180006C LDS R24,0x6C
11B2 6081 ORI R24,1
11B3 9380006C STS 0x6C,R24
11B5 98AF CBI P15,7
(0083) q=p+32*1024;
11B6 01B5 MOVW R22,R10
11B7 5060 SUBI R22,0
11B8 4870 SBCI R23,0x80
(0084) *q=~char16x8[z++];
11B9 0117 MOVW R2,R14
11BA 01C1 MOVW R24,R2
11BB 9601 ADIW R24,1
11BC 017C MOVW R14,R24
11BD E88A LDI R24,0x8A
11BE E090 LDI R25,0
11BF 01F1 MOVW R30,R2
11C0 0FE8 ADD R30,R24
11C1 1FF9 ADC R31,R25
11C2 91E4 LPM R30,0(Z)
11C3 95E0 COM R30
11C4 01DB MOVW R26,R22
11C5 93EC ST R30,0(X)
(0085) SRAM_64k
11C6 9180006C LDS R24,0x6C
11C8 7F8E ANDI R24,0xFE
11C9 9380006C STS 0x6C,R24
(0086) }
11CB C00D RJMP 0x11D9
(0087) else *p=~char16x8[z++];
11CC 0117 MOVW R2,R14
11CD 01C1 MOVW R24,R2
11CE 9601 ADIW R24,1
11CF 017C MOVW R14,R24
11D0 E88A LDI R24,0x8A
11D1 E090 LDI R25,0
11D2 01F1 MOVW R30,R2
11D3 0FE8 ADD R30,R24
11D4 1FF9 ADC R31,R25
11D5 91E4 LPM R30,0(Z)
11D6 95E0 COM R30
11D7 01D5 MOVW R26,R10
11D8 93EC ST R30,0(X)
(0088) y++;
11D9 9443 INC R4
(0089) p=&ADDR_0+y*bytes_1line+x;
11DA E480 LDI R24,0x40
11DB 9D84 MUL R24,R4
11DC 01C0 MOVW R24,R0
11DD 2CAC MOV R10,R12
11DE 24BB CLR R11
11DF 0EA8 ADD R10,R24
11E0 1EB9 ADC R11,R25
11E1 954A DEC R20
11E2 2422 CLR R2
11E3 1624 CP R2,R20
11E4 F408 BCC 0x11E6
11E5 CFC7 RJMP 0x11AD
(0090) }
(0091) A17_A16_low
11E6 91800062 LDS R24,0x62
11E8 7F8C ANDI R24,0xFC
11E9 93800062 STS 0x62,R24
(0092) }
11EB 940E523A CALL pop_gset5
11ED 9508 RET
_disp24x24:
i --> R20
q --> R10
p --> R22
j --> R14
z --> R12
y --> Y+12
x --> Y+10
11EE 940E51D7 CALL push_arg4
11F0 940E522D CALL push_gset5
11F2 84CE LDD R12,14+Y
11F3 84DF LDD R13,15+Y
(0093)
(0094) void disp24x24(unsigned char x,unsigned char y,unsigned int z)
(0095) {unsigned char i,j,*p,*q;
(0096)
(0097) p=&ADDR_0+y*bytes_1line+x; //起始定位
11F4 E480 LDI R24,0x40
11F5 840C LDD R0,12+Y
11F6 9D80 MUL R24,R0
11F7 01C0 MOVW R24,R0
11F8 856A LDD R22,10+Y
11F9 2777 CLR R23
11FA 0F68 ADD R22,R24
11FB 1F79 ADC R23,R25
(0098) z=z*72; //数据定位
11FC E408 LDI R16,0x48
11FD E010 LDI R17,0
11FE 0196 MOVW R18,R12
11FF 940E5197 CALL empy16s
1201 0168 MOVW R12,R16
(0099) A17_high //选择外部显示Ram
1202 91800062 LDS R24,0x62
1204 6082 ORI R24,2
1205 93800062 STS 0x62,R24
(0100)
(0101) for (i=24;i>0;i--)
1207 E148 LDI R20,0x18
1208 C048 RJMP 0x1251
(0102) {if (y<lines_4kSram)
1209 858C LDD R24,12+Y
120A 3484 CPI R24,0x44
120B F528 BCC 0x1231
(0103) {SRAM_32k
120C 9180006C LDS R24,0x6C
120E 6081 ORI R24,1
120F 9380006C STS 0x6C,R24
1211 98AF CBI P15,7
(0104) q=p+32*1024;
1212 01CB MOVW R24,R22
1213 5080 SUBI R24,0
1214 4890 SBCI R25,0x80
1215 015C MOVW R10,R24
(0105) for (j=3;j>0;j--)
1216 E083 LDI R24,3
1217 2EE8 MOV R14,R24
1218 C00F RJMP 0x1228
(0106) {*q++=~char24x24[z++];}
1219 0116 MOVW R2,R12
121A 01C1 MOVW R24,R2
121B 9601 ADIW R24,1
121C 016C MOVW R12,R24
121D E98A LDI R24,0x9A
121E E09B LDI R25,0xB
121F 01F1 MOVW R30,R2
1220 0FE8 ADD R30,R24
1221 1FF9 ADC R31,R25
1222 91E4 LPM R30,0(Z)
1223 95E0 COM R30
1224 01D5 MOVW R26,R10
1225 93ED ST R30,X+
1226 015D MOVW R10,R26
1227 94EA DEC R14
1228 2422 CLR R2
1229 142E CP R2,R14
122A F370 BCS 0x1219
(0107) SRAM_64k
122B 9180006C LDS R24,0x6C
122D 7F8E ANDI R24,0xFE
122E 9380006C STS 0x6C,R24
(0108) }
1230 C015 RJMP 0x1246
(0109) else {for (j=3;j>0;j--)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -