TOP

MOV和B0MOV的有何區別?

MOV 指令爲寄存器讀/寫指令,通過累加器ACC 傳送數據,共有3 種操作格式:
◆ MOV A,M :從內存中讀取數據幷存入ACC 中,結果爲0,零標志(Z)置1,否則置0。
◆ MOV M,A :從ACC 中的數據寫入內存中,此操作不影響PFLAG。
◆ MOV A,I :將立即數賦予ACC,此操作不影響PFLAG。

※注:
1.“I” 爲立即數;
2.“M”爲系統寄存器或用戶自定義寄存器;

B0MOV 指令爲寄存器讀/寫指令,內存必須位于BANK0,通過ACC 傳送數據,共有3 種操作格式:
◆ B0MOV A,M :從BANK0 內存中讀取數據存入到ACC 中。結果爲0,零標志(Z)置1,否則零標志置0。
◆ B0MOV M,A :將ACC 的數據寫入到BANK0 內存中,操作不影響PFLAG。
◆ B0MOV M,I :將立即數賦予BANK0 內存,內存必須是工作寄存器(H,L,R,X,Y,Z)、RBANK 或PFLAG,操作不影響PFLAG。

※注:
1.“I” 爲立即數;
2.“M”爲系統寄存器或用戶自定義內存BANK0 位置的寄存器;

因此,在只有BANK0的芯片中,除了“MOV A,I”和“B0MOV M,I”要參照上述說明使用外,在大部分情况下“MOV”和“B0MOV”是等價的;如果是有多個RAM分區的芯片,比如包含BANK0和BANK1兩頁,在bank1 訪問狀態下,“MOV”指令可對當前BANK(即BANK1)的寄存器進行操作,而使用“B0MOV”指令,則可以無需轉換RAM bank而直接訪問系統寄存器或RAM bank 0 的數據。