📄 file3.rst
字号:
0002 249 ar2 = 0x02
0003 250 ar3 = 0x03
0004 251 ar4 = 0x04
0005 252 ar5 = 0x05
0006 253 ar6 = 0x06
0007 254 ar7 = 0x07
0000 255 ar0 = 0x00
0001 256 ar1 = 0x01
257 ;c:/hj51avr/code/c/file3.c:24: P1 = 255; //关闭LED显示
258 ; genAssign
0031 75 90 FF 259 mov _P1,#0xFF
260 ;c:/hj51avr/code/c/file3.c:25: P0 = 0; //关闭数码显示
261 ; genAssign
0034 75 80 00 262 mov _P0,#0x00
263 ;c:/hj51avr/code/c/file3.c:26: P2 = 0; //
264 ; genAssign
0037 75 A0 00 265 mov _P2,#0x00
266 ;c:/hj51avr/code/c/file3.c:27: P3_7 = 0; //关闭蜂鸣器
267 ; genAssign
003A C2 B7 268 clr _P3_7
269 ;c:/hj51avr/code/c/file3.c:30: { for(k=0;k<32;k++)
003C 270 00112$:
271 ; genAssign
003C 7A 00 272 mov r2,#0x00
003E 7B 00 273 mov r3,#0x00
0040 274 00104$:
275 ; genCmpLt
276 ; genCmp
0040 C3 277 clr c
0041 EA 278 mov a,r2
0042 94 20 279 subb a,#0x20
0044 EB 280 mov a,r3
0045 64 80 281 xrl a,#0x80
0047 94 80 282 subb a,#0x80
283 ; genIfxJump
284 ; Peephole 108 removed ljmp by inverse jump logic
0049 50 F1 285 jnc 00112$
004B 286 00113$:
287 ;c:/hj51avr/code/c/file3.c:31: { delay(255); //延时
288 ; genCall
004B 75 82 FF 289 mov dpl,#0xFF
004E C0 02 290 push ar2
0050 C0 03 291 push ar3
0052 12 00 76 292 lcall _delay
0055 D0 03 293 pop ar3
0057 D0 02 294 pop ar2
295 ;c:/hj51avr/code/c/file3.c:32: display(k%8,k);
296 ; genAnd
0059 74 07 297 mov a,#0x07
005B 5A 298 anl a,r2
005C FC 299 mov r4,a
005D 7D 00 300 mov r5,#0x00
301 ; genCast
005F 8C 82 302 mov dpl,r4
303 ; genCast
0061 8A 08 304 mov _display_PARM_2,r2
305 ; genCall
0063 C0 02 306 push ar2
0065 C0 03 307 push ar3
0067 12 00 A0 308 lcall _display
006A D0 03 309 pop ar3
006C D0 02 310 pop ar2
311 ;c:/hj51avr/code/c/file3.c:30: { for(k=0;k<32;k++)
312 ; genPlus
313 ; genPlusIncr
314 ; tail increment optimized
006E 0A 315 inc r2
006F BA 00 CE 316 cjne r2,#0x00,00104$
0072 0B 317 inc r3
318 ; Peephole 112.b changed ljmp to sjmp
0073 80 CB 319 sjmp 00104$
0075 320 00108$:
0075 22 321 ret
322 ;------------------------------------------------------------
323 ;Allocation info for local variables in function 'delay'
324 ;------------------------------------------------------------
325 ;times Allocated to registers r2
326 ;t Allocated to registers r3 r4
327 ;i Allocated to registers
328 ;------------------------------------------------------------
329 ;c:/hj51avr/code/c/file3.c:39: void delay(unsigned char times)
330 ; -----------------------------------------
331 ; function delay
332 ; -----------------------------------------
0076 333 _delay:
334 ; genReceive
0076 AA 82 335 mov r2,dpl
336 ;c:/hj51avr/code/c/file3.c:41: int t=25000; //延时倍数
337 ; genAssign
0078 7B A8 338 mov r3,#0xA8
007A 7C 61 339 mov r4,#0x61
340 ;c:/hj51avr/code/c/file3.c:42: unsigned char i=times;
341 ; genAssign
007C 342 00105$:
343 ;c:/hj51avr/code/c/file3.c:43: for(;i!=0;i--)
344 ; genCmpEq
007C BA 00 02 345 cjne r2,#0x00,00114$
346 ; Peephole 112.b changed ljmp to sjmp
007F 80 1E 347 sjmp 00109$
0081 348 00114$:
349 ; genAssign
0081 8B 05 350 mov ar5,r3
0083 8C 06 351 mov ar6,r4
0085 352 00101$:
353 ;c:/hj51avr/code/c/file3.c:44: {for(;t!=0;t--){}}
354 ; genCmpEq
355 ; Peephole 241.b optimized compare
0085 E4 356 clr a
0086 BD 00 04 357 cjne r5,#0x00,00115$
0089 BE 00 01 358 cjne r6,#0x00,00115$
008C 04 359 inc a
008D 360 00115$:
008D 361 00116$:
008D FF 362 mov r7,a
363 ; genAssign
008E 8D 03 364 mov ar3,r5
0090 8E 04 365 mov ar4,r6
366 ; genIfx
0092 EF 367 mov a,r7
368 ; genIfxJump
369 ; Peephole 109 removed ljmp by inverse jump logic
0093 70 07 370 jnz 00107$
0095 371 00117$:
372 ; genMinus
373 ; genMinusDec
374 ; tail decrement optimized
0095 1D 375 dec r5
0096 BD FF EC 376 cjne r5,#0xff,00101$
0099 1E 377 dec r6
378 ; Peephole 112.b changed ljmp to sjmp
009A 80 E9 379 sjmp 00101$
009C 380 00107$:
381 ;c:/hj51avr/code/c/file3.c:43: for(;i!=0;i--)
382 ; genMinus
383 ; genMinusDec
009C 1A 384 dec r2
385 ; Peephole 112.b changed ljmp to sjmp
009D 80 DD 386 sjmp 00105$
009F 387 00109$:
009F 22 388 ret
389 ;------------------------------------------------------------
390 ;Allocation info for local variables in function 'display'
391 ;------------------------------------------------------------
392 ;disdata Allocated with name '_display_PARM_2'
393 ;disseg Allocated to registers r2
394 ;dataf Allocated to registers r3
395 ;------------------------------------------------------------
396 ;c:/hj51avr/code/c/file3.c:54: void display(unsigned char disseg,unsigned char disdata)
397 ; -----------------------------------------
398 ; function display
399 ; -----------------------------------------
00A0 400 _display:
401 ; genReceive
00A0 AA 82 402 mov r2,dpl
403 ;c:/hj51avr/code/c/file3.c:57: dataf = 1;
404 ; genAssign
00A2 7B 01 405 mov r3,#0x01
406 ;c:/hj51avr/code/c/file3.c:58: while(disseg)
407 ; genAssign
00A4 408 00101$:
409 ; genIfx
00A4 EA 410 mov a,r2
411 ; genIfxJump
412 ; Peephole 110 removed ljmp by inverse jump logic
00A5 60 07 413 jz 00103$
00A7 414 00108$:
415 ;c:/hj51avr/code/c/file3.c:60: dataf <<= 1;
416 ; genLeftShift
417 ; genLeftShiftLiteral
418 ; genlshOne
00A7 EB 419 mov a,r3
00A8 25 E0 420 add a,acc
00AA FB 421 mov r3,a
422 ;c:/hj51avr/code/c/file3.c:61: disseg--;
423 ; genMinus
424 ; genMinusDec
00AB 1A 425 dec r2
426 ; Peephole 112.b changed ljmp to sjmp
00AC 80 F6 427 sjmp 00101$
00AE 428 00103$:
429 ;c:/hj51avr/code/c/file3.c:63: sege = 0;
430 ; genAssign
00AE C2 A7 431 clr _P2_7
432 ;c:/hj51avr/code/c/file3.c:64: segdata = dataf; //这里首先把要显示的数据放到数据总线
433 ; genAssign
00B0 8B 80 434 mov _P0,r3
435 ;c:/hj51avr/code/c/file3.c:65: segb = 1; //这里给出一个脉冲,数据送往位选端
436 ; genAssign
00B2 D2 A6 437 setb _P2_6
438 ;c:/hj51avr/code/c/file3.c:66: segb = 0;
439 ; genAssign
00B4 C2 A6 440 clr _P2_6
441 ;c:/hj51avr/code/c/file3.c:68: segdata = disbuf_u[disdata];
442 ; genPlus
00B6 E5 08 443 mov a,_display_PARM_2
444 ; Peephole 181 changed mov to clr
445 ; genPointerGet
446 ; genCodePointerGet
447 ; Peephole 181 changed mov to clr
448 ; Peephole 186.d optimized movc sequence
00B8 90 00 C3 449 mov dptr,#_disbuf_u
00BB 93 450 movc a,@a+dptr
00BC F5 80 451 mov _P0,a
452 ;c:/hj51avr/code/c/file3.c:69: segd = 1; //这里给出一个脉冲,数据送往段选端
453 ; genAssign
00BE D2 A5 454 setb _P2_5
455 ;c:/hj51avr/code/c/file3.c:70: segd = 0;
456 ; genAssign
00C0 C2 A5 457 clr _P2_5
00C2 458 00104$:
00C2 22 459 ret
460 .area CSEG (CODE)
00C3 461 _disbuf_u:
00C3 C0 462 .db #0xC0
00C4 F9 463 .db #0xF9
00C5 A4 464 .db #0xA4
00C6 B0 465 .db #0xB0
00C7 99 466 .db #0x99
00C8 92 467 .db #0x92
00C9 82 468 .db #0x82
00CA F8 469 .db #0xF8
00CB 80 470 .db #0x80
00CC 90 471 .db #0x90
00CD 88 472 .db #0x88
00CE 83 473 .db #0x83
00CF C6 474 .db #0xC6
00D0 A1 475 .db #0xA1
00D1 86 476 .db #0x86
00D2 8E 477 .db #0x8E
00D3 40 478 .db #0x40
00D4 79 479 .db #0x79
00D5 24 480 .db #0x24
00D6 30 481 .db #0x30
00D7 19 482 .db #0x19
00D8 12 483 .db #0x12
00D9 02 484 .db #0x02
00DA 78 485 .db #0x78
00DB 00 486 .db #0x00
00DC 10 487 .db #0x10
00DD 08 488 .db #0x08
00DE 03 489 .db #0x03
00DF 46 490 .db #0x46
00E0 21 491 .db #0x21
00E1 06 492 .db #0x06
00E2 0E 493 .db #0x0E
494 .area XINIT (CODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -