我正在使用指令bsf PORTB,COUNT
将某个位设置为1。在此说明中,COUNT
的地址被采用,我需要采用COUNT
的内容,例如6或7,我该怎么做?我是这个汇编代码的新手
答案 0 :(得分:1)
BSF的第一个操作数是操作的目标地址,在您的情况下为PORTB。第二个操作数是由常量指定的要设置的位号(0到7)。
汇编程序将地址标签COUNT解释为常量,而不是您打算做的。
当第二个寄存器包含位号时,一种解决方案是为位号生成位掩码,然后使用该掩码对目标寄存器进行按位OR运算。
要生成位掩码,请将寄存器加载1,然后将其移位位数。因此,对于位0,您根本不会移位(00000001),对于位7,您将向左移位7次(导致10000000)。掩码可以预先计算,存储在存储器中,并根据需要通过位号索引。