|
先不說(shuō)P2^0這種明顯的錯(cuò)誤三種代碼都可以得到最高位
把以上三種代碼放進(jìn)Keil 然后編譯
得出以下結(jié)果:
13: P20 = dat & 0x80;
C:0x008F E508 MOV A,dat(0x08) //<<<<<<<<<<<12時(shí)鐘
C:0x0091 33 RLC A //<<<<<<<<<<<12時(shí)鐘
C:0x0092 92A0 MOV P20(0xA0.0),C //<<<<<<<<<<<24時(shí)鐘
13: if(dat & 0x80 > 0) {
14: P20 = 1;
15: } else {
16: P20 = 0;
17: }
C:0x008F E508 MOV A,dat(0x08) //<<<<<<<<<<<12時(shí)鐘
C:0x0091 30E004 JNB 0xE0.0,C:0098 //<<<<<<<<<<<24時(shí)鐘
C:0x0094 D2A0 SETB P20(0xA0.0) //<<<<<<<<<<<12時(shí)鐘
C:0x0096 8002 SJMP C:009A //<<<<<<<<<<<12時(shí)鐘
C:0x0098 C2A0 CLR P20(0xA0.0) //<<<<<<<<<<<24時(shí)鐘
C:0x009A E508
13: P20 = dat >> 7;
C:0x008F E508 MOV A,dat(0x08)
C:0x0091 C4 SWAP A
C:0x0092 13 RRC A
C:0x0093 13 RRC A
C:0x0094 13 RRC A
C:0x0095 5401 ANL A,#0x01
C:0x0097 24FF ADD A,#0xFF
C:0x0099 92A0 MOV P20(0xA0.0),C
看的出第一種要走48時(shí)鐘
第二種如果高位是零走36+24時(shí)鐘,高位是一走36+12+12時(shí)鐘
第三種太多行
結(jié)論是第一種代碼簡(jiǎn)潔,效率也最高
推薦第一種
|
|