1. 1 Overall
共性:
- 立即数不能作为目的操作数
- 以
A为目的操作数的指令会影响Parity Rn与Rn、Rn与@Ri、@Ri与@Ri不能同时出现在指令的源、目的操作数中。
操作数的表现形式
- 内部RAM:
A、Rn、@Ri、direct、#data - 外部RAM:
@DPTR、@Ri - ROM:
@A+DPTR、@A+PC
2. 2 数据传送指令
除以累加器A为目的操作数的数据传送指令对P标志位有影响外,其余数据传送指令均不影响标志位。
2.1. 2.1 内部RAM
- MOV
- 在
A、Rn、@Ri、direct、#data之间互传 - 除了*
Rn之间、Rn与@Ri之间、@Ri之间* direct可以自己传自己
2.2. 2.2 外部RAM
- MOVX
- 其中必有一个为
A - 另外一个操作数(在片外):
@Ri,片外低256字节@DPTR,片外64K
2.3. 2.3 ROM
- MOVC
- 都是读入
A中 - 只有两种
@A+DPTR:DPTR相当于表的位置,A=欲查数值距离表首地址的值@A+PC:PC相当于表的位置,A=表首地址-当前指令的PC值-1
3. 3 算术运算
除了++和--以外都影响标志位
- INC \ DEC:只有
DPTR不能– - ADD \ ADDC \ SUBB
- 都存入
A,只有DPTR不能进行运算 - ADDC:(A)$\leftarrow$(A)+(Cy)+(第二操作数)
- SUBB: (A)$\leftarrow$ (A)-(Cy)-(第二操作数)
- MUL \ DIV
- MUL: 低八位进
A,高8位进B - DIV:整数进
A,余数进B
4. 4 逻辑运算
目的操作数是A时影响P标志位。除了两条带进位的循环移位指令影响C标志外,其余均不影响PSW中的各标志位。
ANL \ ORL \ XRL
RL \ RR \ RLC \ RRC

- CLR \ CPL