📄 sw_int.ls1
字号:
225 ; }
226 ; SOURCE LINE # 76
000B 227 ?C0001:
228 ; __asm POP DPL
000B D082 229 POP DPL
230 ; __asm POP DPH
000D D083 231 POP DPH
232 ; if (1==gOsIntLevel)
233 ; SOURCE LINE # 79
000F E500 F 234 MOV A,gOsIntLevel
0011 B4010F 235 CJNE A,#01H,?C0003
236 ; {
237 ; SOURCE LINE # 80
238 ; tmpsp1 = DPL;
239 ; SOURCE LINE # 81
0014 A800 F 240 MOV R0,?C_IBP
0016 08 241 INC R0
0017 A682 242 MOV @R0,DPL
243 ; tmpsp2 = DPH;
244 ; SOURCE LINE # 82
0019 A800 F 245 MOV R0,?C_IBP
001B 08 246 INC R0
001C 08 247 INC R0
001D A683 248 MOV @R0,DPH
249 ; __asm POP DPL
001F D082 250 POP DPL
251 ; __asm POP DPH
0021 D083 252 POP DPH
253 ;
254 ; }
255 ; SOURCE LINE # 86
A51 MACRO ASSEMBLER SW_INT 11/24/2006 11:35:22 PAGE 5
0023 256 ?C0003:
257 ; tmp = gOs.currTask;
258 ; SOURCE LINE # 87
0023 A800 F 259 MOV R0,?C_IBP
0025 A600 F 260 MOV @R0,gOs+01FH
261 ; gOs.tcb[tmp].sp = SP;
262 ; SOURCE LINE # 88
0027 E6 263 MOV A,@R0
0028 FF 264 MOV R7,A
0029 75F007 265 MOV B,#07H
002C A4 266 MUL AB
002D 2400 F 267 ADD A,#LOW (gOs+02H)
002F F8 268 MOV R0,A
0030 A681 269 MOV @R0,SP
270 ;
271 ; if (OS_TASK_RUN==gOs.tcb[tmp].state)
272 ; SOURCE LINE # 90
0032 EF 273 MOV A,R7
0033 75F007 274 MOV B,#07H
0036 A4 275 MUL AB
0037 2400 F 276 ADD A,#LOW (gOs+07H)
0039 F8 277 MOV R0,A
003A E6 278 MOV A,@R0
003B FC 279 MOV R4,A
003C 08 280 INC R0
003D E6 281 MOV A,@R0
003E FD 282 MOV R5,A
003F EC 283 MOV A,R4
0040 C4 284 SWAP A
0041 F8 285 MOV R0,A
0042 54F0 286 ANL A,#0F0H
0044 C8 287 XCH A,R0
0045 ED 288 MOV A,R5
0046 C4 289 SWAP A
0047 540F 290 ANL A,#0FH
0049 48 291 ORL A,R0
004A 540F 292 ANL A,#0FH
004C 6403 293 XRL A,#03H
004E 7015 294 JNZ ?C0004
295 ; {
296 ; SOURCE LINE # 91
297 ; gOs.tcb[tmp].state = OS_TASK_RDY;
298 ; SOURCE LINE # 92
0050 A800 F 299 MOV R0,?C_IBP
0052 E6 300 MOV A,@R0
0053 75F007 301 MOV B,#07H
0056 A4 302 MUL AB
0057 2400 F 303 ADD A,#LOW (gOs+07H)
0059 F8 304 MOV R0,A
005A AE04 305 MOV R6,AR4
005C ED 306 MOV A,R5
005D 540F 307 ANL A,#0FH
005F 4410 308 ORL A,#010H
0061 A606 309 MOV @R0,AR6
0063 08 310 INC R0
0064 F6 311 MOV @R0,A
312 ; }
313 ; SOURCE LINE # 93
0065 314 ?C0004:
315 ; for(tmp=0;tmp<OS_TASK_MAX_NUM;tmp++)
316 ; SOURCE LINE # 94
0065 A800 F 317 MOV R0,?C_IBP
0067 E4 318 CLR A
0068 F6 319 MOV @R0,A
0069 320 ?C0005:
0069 A800 F 321 MOV R0,?C_IBP
A51 MACRO ASSEMBLER SW_INT 11/24/2006 11:35:22 PAGE 6
006B E6 322 MOV A,@R0
006C FF 323 MOV R7,A
006D C3 324 CLR C
006E 9404 325 SUBB A,#04H
0070 506A 326 JNC ?C0006
327 ; {
328 ; SOURCE LINE # 95
329 ; if (gOs.osPrio&(1<<tmp))
330 ; SOURCE LINE # 96
0072 7401 331 MOV A,#01H
0074 7E00 332 MOV R6,#00H
0076 A807 333 MOV R0,AR7
0078 08 334 INC R0
0079 8005 335 SJMP ?C0029
007B 336 ?C0028:
007B C3 337 CLR C
007C 33 338 RLC A
007D CE 339 XCH A,R6
007E 33 340 RLC A
007F CE 341 XCH A,R6
0080 342 ?C0029:
0080 D8F9 343 DJNZ R0,?C0028
0082 FF 344 MOV R7,A
0083 E500 F 345 MOV A,gOs
0085 5E 346 ANL A,R6
0086 FE 347 MOV R6,A
0087 E500 F 348 MOV A,gOs+01H
0089 5F 349 ANL A,R7
008A 4E 350 ORL A,R6
008B 604A 351 JZ ?C0007
352 ; {
353 ; SOURCE LINE # 97
354 ; if (OS_TASK_RDY==gOs.tcb[tmp].state)
355 ; SOURCE LINE # 98
008D A800 F 356 MOV R0,?C_IBP
008F E6 357 MOV A,@R0
0090 FD 358 MOV R5,A
0091 75F007 359 MOV B,#07H
0094 A4 360 MUL AB
0095 2400 F 361 ADD A,#LOW (gOs+07H)
0097 F8 362 MOV R0,A
0098 E6 363 MOV A,@R0
0099 FE 364 MOV R6,A
009A 08 365 INC R0
009B E6 366 MOV A,@R0
009C FF 367 MOV R7,A
009D EE 368 MOV A,R6
009E C4 369 SWAP A
009F F8 370 MOV R0,A
00A0 54F0 371 ANL A,#0F0H
00A2 C8 372 XCH A,R0
00A3 EF 373 MOV A,R7
00A4 C4 374 SWAP A
00A5 540F 375 ANL A,#0FH
00A7 48 376 ORL A,R0
00A8 540F 377 ANL A,#0FH
00AA 6401 378 XRL A,#01H
00AC 7029 379 JNZ ?C0007
380 ; {
381 ; SOURCE LINE # 99
382 ; gOs.tcb[tmp].state = OS_TASK_RDY;
383 ; SOURCE LINE # 100
00AE ED 384 MOV A,R5
00AF 75F007 385 MOV B,#07H
00B2 A4 386 MUL AB
A51 MACRO ASSEMBLER SW_INT 11/24/2006 11:35:22 PAGE 7
00B3 2400 F 387 ADD A,#LOW (gOs+07H)
00B5 F8 388 MOV R0,A
00B6 C000 389 PUSH AR0
00B8 E6 390 MOV A,@R0
00B9 FE 391 MOV R6,A
00BA 08 392 INC R0
00BB E6 393 MOV A,@R0
00BC 540F 394 ANL A,#0FH
00BE 4410 395 ORL A,#010H
00C0 D000 396 POP AR0
00C2 A606 397 MOV @R0,AR6
00C4 08 398 INC R0
00C5 F6 399 MOV @R0,A
400 ; gOs.currTask = tmp;
401 ; SOURCE LINE # 101
00C6 8D00 F 402 MOV gOs+01FH,R5
403 ; SP = gOs.tcb[tmp].sp;
404 ; SOURCE LINE # 102
00C8 A800 F 405 MOV R0,?C_IBP
00CA E6 406 MOV A,@R0
00CB 75F007 407 MOV B,#07H
00CE A4 408 MUL AB
00CF 2400 F 409 ADD A,#LOW (gOs+02H)
00D1 F8 410 MOV R0,A
00D2 E6 411 MOV A,@R0
00D3 F581 412 MOV SP,A
413 ; break;
414 ; SOURCE LINE # 103
00D5 8005 415 SJMP ?C0006
416 ; }
417 ; SOURCE LINE # 104
418 ; }
419 ; SOURCE LINE # 105
420 ; }
421 ; SOURCE LINE # 106
00D7 422 ?C0007:
00D7 A800 F 423 MOV R0,?C_IBP
00D9 06 424 INC @R0
00DA 808D 425 SJMP ?C0005
00DC 426 ?C0006:
427 ; __asm PUSH DPH
00DC C083 428 PUSH DPH
429 ; __asm PUSH DPL
00DE C082 430 PUSH DPL
431 ; if (1==gOsIntLevel)
432 ; SOURCE LINE # 109
00E0 E500 F 433 MOV A,gOsIntLevel
00E2 B40111 434 CJNE A,#01H,?C0002
435 ; {
436 ; SOURCE LINE # 110
437 ; DPH = tmpsp2;
438 ; SOURCE LINE # 111
00E5 A800 F 439 MOV R0,?C_IBP
00E7 08 440 INC R0
00E8 08 441 INC R0
00E9 E6 442 MOV A,@R0
00EA F583 443 MOV DPH,A
444 ; DPL = tmpsp1;
445 ; SOURCE LINE # 112
00EC A800 F 446 MOV R0,?C_IBP
00EE 08 447 INC R0
00EF E6 448 MOV A,@R0
00F0 F582 449 MOV DPL,A
450 ; __asm PUSH DPH
00F2 C083 451 PUSH DPH
452 ; __asm PUSH DPL
A51 MACRO ASSEMBLER SW_INT 11/24/2006 11:35:22 PAGE 8
00F4 C082 453 PUSH DPL
454 ; }
455 ; SOURCE LINE # 115
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -