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 的数据。
◆ 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 的数据。