高手进来PIC单片机问题,

我是刚学PIC有这个问题:定义w equ 2注释为(定义传送目标为W的指示位),指令comf port_b,w是如何执行的,类似的还有btfsz status,z(z定义为0标志位的位地址)如何执行的

第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产生额外变化。
第2个回答  2009-02-26
comf port_b,w ;把port_b中的数取后存储到W寄存器中。

btfsz status,z ;依据status寄存器的第z位是否为1来执行是否跳转。
第3个回答  2009-02-25
建议你用c语言编程本回答被提问者采纳
相似回答
大家正在搜