算术运算与逻辑运算指令注意
- 对于ADD、ADDC指令的进位问题:
- (1)如果位7有进位,则Cy置1,否则Cy清0。
- (2)如果位3有进位,则Ac置1,否则Ac清0。
- (3)OV=位6进位⊕位7进位。
- 注意:位6和位7同时有进位,所以OV=0。
- 只有带符号数运算,OV标志才有意义。
- OV=1,表示运算结果超过有效范围(-128~+127),运算结果是错误的。
- 对于DA调整问题:
- ① 累加器低4位大于9或辅助进位Ac=1,则加06H修正。
- ② 累加器高4位大于9或进位Cy=1,则加60H修正。
- 对于SUBB指令借位问题:
- 如果位7需借位则Cy置1,否则Cy清0;
- 如果位3需借位则Ac置1,否则Ac清0;
- OV=位6借位⊕位7借位。
- 对于DEC指令:
- 不影响标志位(P标志除外)。
- 整数乘除指令标志位影响问题:
- 对于MUL指令,如果积>255,则OV置1,否则OV清0。Cy标志总是清0。
- 对于DIV指令,Cy和OV清0。如果B=0(即除数为0),则OV置1。
欢迎查阅