-1
任何人都可以向我展開按位AND操作如何工作? 我有以下代碼:PIC彙編程序和按位與
CLRF LATC & 0x7F
MOVWF LATC & 0x7F
什麼是使用& 0x7F的目的是什麼?這個改變是什麼?
更新:我知道一般的按位操作是如何工作的,我知道「CLRF LATC」應該將LATC寄存器清零。但是LATC寄存器的「CLRF LATC & 0x7F」是什麼?零都只是最後一點?
任何人都可以向我展開按位AND操作如何工作? 我有以下代碼:PIC彙編程序和按位與
CLRF LATC & 0x7F
MOVWF LATC & 0x7F
什麼是使用& 0x7F的目的是什麼?這個改變是什麼?
更新:我知道一般的按位操作是如何工作的,我知道「CLRF LATC」應該將LATC寄存器清零。但是LATC寄存器的「CLRF LATC & 0x7F」是什麼?零都只是最後一點?
該操作已由彙編程序執行,因此「MOVWF 0x193 & 0x7F」(例如)與「MOVWF 0x13」(因爲0x193 & 0x7F = 0x13)相同。
之所以這樣做是以下之一:
對於較大的PIC內存被存入銀行。要寫入地址0x193,您必須切換到bank#3(地址0x180-0x1FF)並寫入地址0x13(而不是地址0x193)。
這個「銀行相對」地址是通過將絕對地址和數字0x7F進行AND來計算的。因爲象「LATC」這樣的符號可能被定義爲絕對地址(0x193)而不是相對地址(0x13),所以你需要這種形式的指令。
http://en.wikipedia.org/wiki/Bitwise_AND#AND –