Assembly PIC16F84A说明BSF-装配
我正在使用指令Assembly PIC16F84A说明BSF-装配,assembly,pic,Assembly,Pic,我正在使用指令bsf PORTB,COUNT将某个位设置为1。在本说明中,采用了COUNT的地址,我需要采用COUNT的内容,例如6或7,我怎么做?我不熟悉此汇编代码在您的示例中,BSF的第一个操作数是操作的目标地址PORTB。第二个操作数是由常数指定的要设置的位数(0到7) 汇编程序将地址标签计数解释为一个常数,这不是您想要做的 当第二个寄存器包含位号时,一种解决方案是为位号生成位掩码,然后使用该掩码按位或目标寄存器 要生成位掩码,请加载一个带1的寄存器,然后将其向左移位位数。因此,对于位0,
bsf PORTB,COUNT
将某个位设置为1。在本说明中,采用了COUNT
的地址,我需要采用COUNT
的内容,例如6或7,我怎么做?我不熟悉此汇编代码在您的示例中,BSF的第一个操作数是操作的目标地址PORTB。第二个操作数是由常数指定的要设置的位数(0到7)
汇编程序将地址标签计数解释为一个常数,这不是您想要做的
当第二个寄存器包含位号时,一种解决方案是为位号生成位掩码,然后使用该掩码按位或目标寄存器
要生成位掩码,请加载一个带1的寄存器,然后将其向左移位位数。因此,对于位0,您根本不会移动(00000001),对于位7,您将向左移动7次(导致10000000)。掩码可以预先计算,存储在内存中,并根据需要按位编号编入索引。我不在我的系统中;这是(非常)模糊的记忆。看看这是否有效:
Mov[COUNT],W0
然后再BSF W0,PORTB
,没有任何承诺。有更聪明的人请插话