首页 > 技术文章 > 算术运算与逻辑运算指令注意

gh110 2021-12-26 18:26 原文

  • 对于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。

推荐阅读