📄 hello.ls1
字号:
175 ;
176 ; }
A51 MACRO ASSEMBLER HELLO 02/27/2006 22:19:18 PAGE 4
177 ; SOURCE LINE # 36
0004 22 178 RET
179 ; END OF _delay
180
181 ;
182 ; // //串口中断
183 ; //void comisp(void) interrupt 4
184 ; //{
185 ; //
186 ; //if(RI) //处理接收中断
187 ; // {
188 ; // RI=0;
189 ; // }
190 ; //if(TI) //处理发送中断
191 ; // {
192 ; // TI=0;
193 ; // }
194 ; //
195 ; //}
196 ;
197 ;
198 ; /*------------------------------------------------
199 ; The main C function. Program execution starts
200 ; here after stack initialization.
201 ; ------------------------------------------------*/
202 ; void main (void) {
203
---- 204 RSEG ?PR?main?HELLO
0000 205 main:
206 USING 0
207 ; SOURCE LINE # 58
208 ;
209 ; unsigned int i;
210 ; unsigned char xdata *xdp;
211 ;
212 ;
213 ; #ifndef MONITOR51
214 ; SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr 101 0000
*/
215 ; SOURCE LINE # 65
0000 759850 216 MOV SCON,#050H
217 ; RCAP2H = 0xFF;
218 ; SOURCE LINE # 66
0003 75CBFF 219 MOV RCAP2H,#0FFH
220 ; TH2 = 0xff;
221 ; SOURCE LINE # 67
0006 75CDFF 222 MOV TH2,#0FFH
223 ; RCAP2L =0xBF;
224 ; SOURCE LINE # 68
0009 75CABF 225 MOV RCAP2L,#0BFH
226 ; TL2 = 0xFB;
227 ; SOURCE LINE # 69
000C 75CCFB 228 MOV TL2,#0FBH
229 ; T2CON = 0x34; //0011 0100
230 ; SOURCE LINE # 70
000F 75C834 231 MOV T2CON,#034H
232 ; //TR1 = 1; /* TR1: timer 1 run */
233 ; TI = 1; /* TI: set TI to send first char of UART */
234 ; SOURCE LINE # 72
0012 D299 235 SETB TI
236 ; ES =0;
237 ; SOURCE LINE # 73
0014 C2AC 238 CLR ES
239 ; EA =1;
240 ; SOURCE LINE # 74
0016 D2AF 241 SETB EA
A51 MACRO ASSEMBLER HELLO 02/27/2006 22:19:18 PAGE 5
242 ; #endif
243 ;
244 ;
245 ; /*------------------------------------------------
246 ; Note that an embedded program never exits (because
247 ; there is no operating system to return to). It
248 ; must loop and execute forever.
249 ; ------------------------------------------------*/
250 ;
251 ; //设置
252 ; K1=1;
253 ; SOURCE LINE # 85
0018 D2B4 254 SETB K1
255 ; K2=1;
256 ; SOURCE LINE # 86
001A D2B5 257 SETB K2
258 ; LED =1;
259 ; SOURCE LINE # 87
001C D290 260 SETB LED
001E 261 ?C0002:
262 ;
263 ;
264 ;
265 ; while(1)
266 ; SOURCE LINE # 91
267 ; {
268 ; SOURCE LINE # 92
269 ;
270 ; //K2按下测试内存
271 ; if(K2==0)
272 ; SOURCE LINE # 95
001E 30B503 273 JNB K2,$ + 6H
0021 020000 F 274 LJMP ?C0004
275 ; {
276 ; SOURCE LINE # 96
277 ; LED =0;
278 ; SOURCE LINE # 97
0024 C290 279 CLR LED
280 ; printf("K2==0");
281 ; SOURCE LINE # 98
0026 7BFF 282 MOV R3,#0FFH
0028 7A00 F 283 MOV R2,#HIGH (?SC_0)
002A 7900 F 284 MOV R1,#LOW (?SC_0)
002C 120000 F 285 LCALL _printf
286 ;
287 ; xdp =0x0;
288 ; SOURCE LINE # 100
002F E4 289 CLR A
0030 F500 F 290 MOV xdp?142,A
0032 F500 F 291 MOV xdp?142+01H,A
292 ;
293 ; for(i=0;i<0x8000;i++) //测试内存32K
294 ; SOURCE LINE # 102
0034 F500 F 295 MOV i?141,A
0036 F500 F 296 MOV i?141+01H,A
0038 297 ?C0005:
298 ; {
299 ; SOURCE LINE # 103
300 ; *xdp=(i%256); //只斌0-256的值
301 ; SOURCE LINE # 104
0038 850082 F 302 MOV DPL,xdp?142+01H
003B 850083 F 303 MOV DPH,xdp?142
003E E500 F 304 MOV A,i?141+01H
0040 F0 305 MOVX @DPTR,A
306 ; xdp++;
307 ; SOURCE LINE # 105
A51 MACRO ASSEMBLER HELLO 02/27/2006 22:19:18 PAGE 6
0041 0500 F 308 INC xdp?142+01H
0043 E500 F 309 MOV A,xdp?142+01H
0045 7002 310 JNZ ?C0013
0047 0500 F 311 INC xdp?142
0049 312 ?C0013:
313 ; //printf("%u\n",i);
314 ; }
315 ; SOURCE LINE # 107
0049 0500 F 316 INC i?141+01H
004B E500 F 317 MOV A,i?141+01H
004D 7002 318 JNZ ?C0014
004F 0500 F 319 INC i?141
0051 320 ?C0014:
0051 B400E4 321 CJNE A,#00H,?C0005
0054 E500 F 322 MOV A,i?141
0056 B480DF 323 CJNE A,#080H,?C0005
0059 324 ?C0006:
325 ;
326 ; xdp =0x0;
327 ; SOURCE LINE # 109
0059 E4 328 CLR A
005A F500 F 329 MOV xdp?142,A
005C F500 F 330 MOV xdp?142+01H,A
331 ;
332 ; for(i=0;i<0x8005;i++) //测试内存
333 ; SOURCE LINE # 111
005E F500 F 334 MOV i?141,A
0060 F500 F 335 MOV i?141+01H,A
0062 336 ?C0008:
337 ; {
338 ; SOURCE LINE # 112
339 ; if(*xdp!=(i%256))
340 ; SOURCE LINE # 113
0062 850082 F 341 MOV DPL,xdp?142+01H
0065 850083 F 342 MOV DPH,xdp?142
0068 E0 343 MOVX A,@DPTR
0069 6500 F 344 XRL A,i?141+01H
006B 7001 345 JNZ ?C0016
006D E4 346 CLR A
006E 347 ?C0016:
006E 6023 348 JZ ?C0011
349 ; {
350 ; SOURCE LINE # 114
351 ; LED=0;
352 ; SOURCE LINE # 115
0070 C290 353 CLR LED
354 ; printf("test memory error!");
355 ; SOURCE LINE # 116
0072 7BFF 356 MOV R3,#0FFH
0074 7A00 F 357 MOV R2,#HIGH (?SC_6)
0076 7900 F 358 MOV R1,#LOW (?SC_6)
0078 120000 F 359 LCALL _printf
360 ; printf("i=%u xdp=%p\n",i,xdp);
361 ; SOURCE LINE # 117
007B 850000 F 362 MOV ?_printf?BYTE+03H,i?141
007E 850000 F 363 MOV ?_printf?BYTE+04H,i?141+01H
0081 750001 F 364 MOV ?_printf?BYTE+05H,#01H
0084 850000 F 365 MOV ?_printf?BYTE+06H,xdp?142
0087 850000 F 366 MOV ?_printf?BYTE+07H,xdp?142+01H
008A 7BFF 367 MOV R3,#0FFH
008C 7A00 F 368 MOV R2,#HIGH (?SC_25)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -