BCD码件减一的问题

2019-03-24 18:43发布

在程序中,我们会遇到BCD码加或减一并用数码管显示的情况,加一容易理解,用INC指令,然后DA A就可以得到正确的计算,
在减一的时候,你用DEC指令,再DA A,会出问题。问题是这样的,一个字节表示两位BCD码,DEC 指令只减一低位,减到0时,
不是返回9,而是5,并且不向高四位借位,所以高位数不变化。为什么?
  如果把减法变成加法来写程序,减一就变成了加负一的补数,如果-1H的补数是99H的话,计算结果正确。那么,-1H的补数是
99H吗,为什么不是FFH?
  如果每一次减2,那-2的补数是98H吗?
  我是菜鸟一个,请高手帮我分析一下,不胜感谢! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。