51单片机汇编语言编程问题

CLR C
MOV A,#66H
JC LOOP1
CPL C
SETB 01H
LOOP1:ORL C,ACC.0
JB ACC.2,LOOP2
LOOP2:MOV P1,A

我主要就是不明白
SETB 01H
为什么使内部寄存器的20H单元中的数据从00H变成了02H

SETB 01H,就是把20H单元里面的D1位置一。

该单元的内容记为:D7D6D5...D1D0, D1=1,该字节的数值就是0000 0010,就是02H。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-14
51 单片机有一个功能很强的位外理器,并有着丰富的位操作指令。其中,从20H~2FH的16个单元里共有00H~7FH这128个可寻址的位地址。20H里8 位从高到低依次为07H、06H、05H、04H、03H、02H、01H、00H
SETB 01H,即对20H的D1位 置1 ,20H就变成00000010,即02H了。
同样,如果是SETB 00H, 20H=#01H、SETB 02H,20H=#04H
相似回答