异或, 都是异或。
不过, 同志们要注意。
表面看,好像都一样。其实,这里有很大的差别。
sbit led = P1 ^6; led = ~led;
其实这里就 CPL 一条指令。
而STM32的口要让它反转,怎样实现呢?
还是异或, 其实还有别的手段,用 BITBAND,再++或--, 但不管怎么异或,都要读,修改,写的过程。起码3条指令。
AVR 也没有 CPL 这样的指令。 为了快速实现端口翻转(一条指令)。IO 端口特别做了设计,就是给引脚 pin 输入写1。
当然, 还有的芯片的 IO 口会有翻转寄存器。
可见也不是指令系统能限制的,或许在未来的芯片中,STM32 也会提供快速的 IO 口翻转的办法。
|