第1个回答 2009-02-25
PIC单片机很多类型,各种类型的内部汇编指令都不一样。不知道你是那种种芯片?但我用过PIC10、PIC12、PIC16、PIC18、PIC24还有dsPIC这些单片机。 都没发现W这个工作寄存器还能指定给2这个空间的。在INC文件里,一般都是声明好了w equ H'0000'。若在程序里再指定会出错把。
第一个,comf port_b,w是指把port_b取补码之后,存到工作寄存器W里。
第二个,我用过的这些PIC单片机好像都没有btfsz的这条指令,有btfss和btfsc的。如果是btfsc status,z的话,就是判断如果STATUS的D2这个零标志位如果是0就跳过下面一条语句。如果是btfss status,z的话,就是判断如果STATUS的D2这个零标志位如果是1就跳过下面一条语句。
补充:如果非要加上w equ 2,程序能编译过去,但会有错误。最后执行的还是有警告。并且对W寄存器操作也不会对02h这个地址的PCL产生额外变化。