有人可以告诉我按位AND操作如何工作? 我有以下代码:
CLRF LATC & 0x7F
MOVWF LATC & 0x7F
使用&的目的是什么? 0x7F的?这有什么变化?
更新:我知道一般的按位运算是如何工作的,我知道“CLRF LATC”应该归零LATC寄存器。但LATC注册的“CLRF LATC& 0x7F”是什么?除了最后一点之外的所有零点?
答案 0 :(得分:1)
该操作已由汇编程序执行,因此“MOVWF 0x193& 0x7F”(例如)与“MOVWF 0x13”相同(因为0x193& 0x7F = 0x13)。
这样做的原因如下:
对于较大的PIC,存储器已存储。
要写入地址0x193,您必须切换到存储区#3(地址0x180-0x1FF)并写入地址0x13(不是地址0x193)。
这个“银行相对”地址是通过对绝对地址和数字0x7F进行AND运算来计算的。
因为像“LATC”这样的符号可以定义为绝对地址(0x193)而不是相对地址(0x13),所以你需要这种形式的指令。