📄 demo1.ls1
字号:
001E 120000 F 175 LCALL ?C?ADDXBP
0021 EB 176 MOV A,R3
0022 F0 177 MOVX @DPTR,A
0023 A3 178 INC DPTR
0024 EA 179 MOV A,R2
0025 F0 180 MOVX @DPTR,A
0026 A3 181 INC DPTR
0027 E9 182 MOV A,R1
0028 F0 183 MOVX @DPTR,A
0029 7B00 184 MOV R3,#00H
002B 7A00 185 MOV R2,#00H
002D 7900 186 MOV R1,#00H
002F 90FFFD 187 MOV DPTR,#0FFFDH
0032 120000 F 188 LCALL ?C?ADDXBP
0035 EB 189 MOV A,R3
0036 F0 190 MOVX @DPTR,A
0037 A3 191 INC DPTR
0038 EA 192 MOV A,R2
0039 F0 193 MOVX @DPTR,A
003A A3 194 INC DPTR
003B E9 195 MOV A,R1
003C F0 196 MOVX @DPTR,A
003D 7BFF 197 MOV R3,#0FFH
003F 7A00 F 198 MOV R2,#HIGH (_?Task1)
0041 7900 F 199 MOV R1,#LOW (_?Task1)
0043 120000 F 200 LCALL _?OSTaskCreate
201 ; OSTaskCreate(Task2, (void *)0, &Task2Stk[0],3);
202 ; SOURCE LINE # 20
0046 90FFFF 203 MOV DPTR,#0FFFFH
0049 120000 F 204 LCALL ?C?ADDXBP
004C 7403 205 MOV A,#03H
004E F0 206 MOVX @DPTR,A
004F 7B01 207 MOV R3,#01H
0051 7A00 F 208 MOV R2,#HIGH (Task2Stk)
0053 7900 F 209 MOV R1,#LOW (Task2Stk)
0055 90FFFD 210 MOV DPTR,#0FFFDH
0058 120000 F 211 LCALL ?C?ADDXBP
005B EB 212 MOV A,R3
005C F0 213 MOVX @DPTR,A
005D A3 214 INC DPTR
005E EA 215 MOV A,R2
005F F0 216 MOVX @DPTR,A
0060 A3 217 INC DPTR
0061 E9 218 MOV A,R1
0062 F0 219 MOVX @DPTR,A
0063 7B00 220 MOV R3,#00H
0065 7A00 221 MOV R2,#00H
0067 7900 222 MOV R1,#00H
0069 90FFFD 223 MOV DPTR,#0FFFDH
A51 MACRO ASSEMBLER DEMO1 05/04/2005 04:11:00 PAGE 5
006C 120000 F 224 LCALL ?C?ADDXBP
006F EB 225 MOV A,R3
0070 F0 226 MOVX @DPTR,A
0071 A3 227 INC DPTR
0072 EA 228 MOV A,R2
0073 F0 229 MOVX @DPTR,A
0074 A3 230 INC DPTR
0075 E9 231 MOV A,R1
0076 F0 232 MOVX @DPTR,A
0077 7BFF 233 MOV R3,#0FFH
0079 7A00 F 234 MOV R2,#HIGH (_?Task2)
007B 7900 F 235 MOV R1,#LOW (_?Task2)
007D 120000 F 236 LCALL _?OSTaskCreate
237 ; OSTaskCreate(Task3, (void *)0, &Task3Stk[0],4);
238 ; SOURCE LINE # 21
0080 90FFFF 239 MOV DPTR,#0FFFFH
0083 120000 F 240 LCALL ?C?ADDXBP
0086 7404 241 MOV A,#04H
0088 F0 242 MOVX @DPTR,A
0089 7B01 243 MOV R3,#01H
008B 7A00 F 244 MOV R2,#HIGH (Task3Stk)
008D 7900 F 245 MOV R1,#LOW (Task3Stk)
008F 90FFFD 246 MOV DPTR,#0FFFDH
0092 120000 F 247 LCALL ?C?ADDXBP
0095 EB 248 MOV A,R3
0096 F0 249 MOVX @DPTR,A
0097 A3 250 INC DPTR
0098 EA 251 MOV A,R2
0099 F0 252 MOVX @DPTR,A
009A A3 253 INC DPTR
009B E9 254 MOV A,R1
009C F0 255 MOVX @DPTR,A
009D 7B00 256 MOV R3,#00H
009F 7A00 257 MOV R2,#00H
00A1 7900 258 MOV R1,#00H
00A3 90FFFD 259 MOV DPTR,#0FFFDH
00A6 120000 F 260 LCALL ?C?ADDXBP
00A9 EB 261 MOV A,R3
00AA F0 262 MOVX @DPTR,A
00AB A3 263 INC DPTR
00AC EA 264 MOV A,R2
00AD F0 265 MOVX @DPTR,A
00AE A3 266 INC DPTR
00AF E9 267 MOV A,R1
00B0 F0 268 MOVX @DPTR,A
00B1 7BFF 269 MOV R3,#0FFH
00B3 7A00 F 270 MOV R2,#HIGH (_?Task3)
00B5 7900 F 271 MOV R1,#LOW (_?Task3)
00B7 120000 F 272 LCALL _?OSTaskCreate
273 ;
274 ; OSStart();
275 ; SOURCE LINE # 23
00BA 020000 F 276 LJMP _?OSStart
277 ; END OF main
278
279 ; }
280 ;
281 ;
282 ; void Task1(void *ppdata) reentrant
283
---- 284 RSEG ?PR?_?Task1?DEMO1
0000 285 _?Task1:
286 USING 0
287 ; SOURCE LINE # 27
0000 90FFFD 288 MOV DPTR,#0FFFDH
0003 120000 F 289 LCALL ?C?ADDXBP
A51 MACRO ASSEMBLER DEMO1 05/04/2005 04:11:00 PAGE 6
0006 EB 290 MOV A,R3
0007 F0 291 MOVX @DPTR,A
0008 A3 292 INC DPTR
0009 EA 293 MOV A,R2
000A F0 294 MOVX @DPTR,A
000B A3 295 INC DPTR
000C E9 296 MOV A,R1
000D F0 297 MOVX @DPTR,A
298 ; {
299 ; ppdata=ppdata;
300 ; SOURCE LINE # 29
000E 850083 F 301 MOV DPH,?C_XBP
0011 850082 F 302 MOV DPL,?C_XBP+01H
0014 E0 303 MOVX A,@DPTR
0015 F9 304 MOV R1,A
0016 A3 305 INC DPTR
0017 E0 306 MOVX A,@DPTR
0018 FA 307 MOV R2,A
0019 A3 308 INC DPTR
001A E0 309 MOVX A,@DPTR
001B 850083 F 310 MOV DPH,?C_XBP
001E 850082 F 311 MOV DPL,?C_XBP+01H
0021 C9 312 XCH A,R1
0022 F0 313 MOVX @DPTR,A
0023 A3 314 INC DPTR
0024 EA 315 MOV A,R2
0025 F0 316 MOVX @DPTR,A
0026 A3 317 INC DPTR
0027 E9 318 MOV A,R1
0028 F0 319 MOVX @DPTR,A
320 ;
321 ; //注意!在最高优先级任务循环前打开定时器中断,以满足在OSStart()前不产生中断的要求。
322 ; //在系统调用OSInit()时会自动创建一个优先级最低的系统任务,创建钩讨谢岬饔肙S_EXIT_CR
ITICAL()打开EA。
323 ; //若在InitTimer0()里打开T0中断,则违反了在OSStart()前不产生中断的要求。
324 ; //切记将ET0=1;放在最高优先级任务里,OSStart()将调用OSStartHighRdy()第一个运行最高优先
级任务,这样ET0=1总能被第一个执行。
325 ; ET0=1;
326 ; SOURCE LINE # 35
0029 D2A9 327 SETB ET0
328 ;
329 ; clrscr();
330 ; SOURCE LINE # 37
002B 120000 F 331 LCALL _?clrscr
332 ; PrintStr("\n\t\t*******************************\n");
333 ; SOURCE LINE # 38
002E 7BFF 334 MOV R3,#0FFH
0030 7A00 F 335 MOV R2,#HIGH (?SC_0)
0032 7900 F 336 MOV R1,#LOW (?SC_0)
0034 120000 F 337 LCALL _?PrintStr
338 ; PrintStr("\t\t* Hello! The world. *\n");
339 ; SOURCE LINE # 39
0037 7BFF 340 MOV R3,#0FFH
0039 7A00 F 341 MOV R2,#HIGH (?SC_36)
003B 7900 F 342 MOV R1,#LOW (?SC_36)
003D 120000 F 343 LCALL _?PrintStr
344 ; PrintStr("\t\t*******************************\n\n\n");
345 ; SOURCE LINE # 40
0040 7BFF 346 MOV R3,#0FFH
0042 7A00 F 347 MOV R2,#HIGH (?SC_71)
0044 7900 F 348 MOV R1,#LOW (?SC_71)
0046 120000 F 349 LCALL _?PrintStr
350 ;
351 ; for(;;){
352 ; SOURCE LINE # 42
0049 353 ?C0002:
A51 MACRO ASSEMBLER DEMO1 05/04/2005 04:11:00 PAGE 7
354 ; PrintStr("\t\t\tThis is Task1.\n");
355 ; SOURCE LINE # 43
0049 7BFF 356 MOV R3,#0FFH
004B 7A00 F 357 MOV R2,#HIGH (?SC_108)
004D 7900 F 358 MOV R1,#LOW (?SC_108)
004F 120000 F 359 LCALL _?PrintStr
360 ; OSTimeDly(OS_TICKS_PER_SEC);
361 ; SOURCE LINE # 44
0052 7E00 362 MOV R6,#00H
0054 7F32 363 MOV R7,#032H
0056 120000 F 364 LCALL _?OSTimeDly
365 ; }
366 ; SOURCE LINE # 45
0059 80EE 367 SJMP ?C0002
368 ; END OF _?Task1
369
370 ; }
371 ;
372 ; void Task2(void *ppdata) reentrant
373
---- 374 RSEG ?PR?_?Task2?DEMO1
0000 375 _?Task2:
376 USING 0
377 ; SOURCE LINE # 48
0000 90FFFD 378 MOV DPTR,#0FFFDH
0003 120000 F 379 LCALL ?C?ADDXBP
0006 EB 380 MOV A,R3
0007 F0 381 MOVX @DPTR,A
0008 A3 382 INC DPTR
0009 EA 383 MOV A,R2
000A F0 384 MOVX @DPTR,A
000B A3 385 INC DPTR
000C E9 386 MOV A,R1
000D F0 387 MOVX @DPTR,A
388 ; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -