C语言反汇编问题

2020-02-04 09:34发布

一段纯延时的C程序,KEIL编译后,查看汇编窗口,发现P0口参与了运算,百思不解,贴出来求大家赐教:
    17: void delay(unsigned char x)      
    18: {
    19:         int i,j;
    20:         for(i=0;i<x;i++)
C:0x0E30    E4       CLR      A
C:0x0E31    FD       MOV      R5,A
C:0x0E32    FC       MOV      R4,A
C:0x0E33    EF       MOV      A,R7
C:0x0E34    FB       MOV      R3,A
C:0x0E35    C3       CLR      C
C:0x0E36    ED       MOV      A,R5
C:0x0E37    9B       SUBB     A,R3
C:0x0E38    7480     MOV      A,#P0(0x80)
C:0x0E3A    F8       MOV      R0,A
C:0x0E3B    6C       XRL      A,R4
C:0x0E3C    98       SUBB     A,R0
C:0x0E3D    5015     JNC      C:0E54
    21:         {
    22:                 for(j=0;j<110;j++);      
C:0x0E3F    E4       CLR      A
C:0x0E40    FB       MOV      R3,A
C:0x0E41    FA       MOV      R2,A
C:0x0E42    0B       INC      R3
C:0x0E43    BB0001   CJNE     R3,#0x00,C:0E47
C:0x0E46    0A       INC      R2
C:0x0E47    EB       MOV      A,R3
C:0x0E48    646E     XRL      A,#0x6E
C:0x0E4A    4A       ORL      A,R2
C:0x0E4B    70F5     JNZ      C:0E42
    23:         }
C:0x0E4D    0D       INC      R5
C:0x0E4E    BD0001   CJNE     R5,#0x00,C:0E52
C:0x0E51    0C       INC      R4
C:0x0E52    80DF     SJMP     C:0E33
    24: }
    25:  
C:0x0E54    22       RET   

其中C:0x0E38    7480     MOV      A,#P0(0x80) 这一行,读取P0口状态到ACC,这是何意?实在不理解。 求高手指点,不胜感激。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。