压缩的(8421)BCD码 用四位二进制数表示一位十进制数

非压缩的(8421)BCD码 用八位二进制数(即一个字节,该字节的高4位全为0)表示一位十进制数

计算机在进行加法时,并不关心运算数是不是BCD码,它只按二进制运算规则进行处理。所以如果对两个BCD码做加法,想要得到以BCD码表示的结果,就需要对add指令产生的结果进行修正。

对非压缩的BCD码修正的方法就是执行 aaa 指令。

aaa 指令可以解释为(图来自stack overflow):

汇编 非压缩的BCD码相加

即:若AL的低四位大于9,或标志位AF=1,则,AH=AH+1,AL=AL+6,并置AF和CF为1。最后将AL的高四位置为0。

AF标志位为辅助进位标志。当执行add 指令时, 如果两个操作数的低四位相加后产生进位,则置AF=1,否则置AF=0。

 

举例:

(令:AL=BCD 5,BL=BCD 8, AH=0)

ADD AL,BL

AAA

得到的结果就是:AH = 01H, AL=03H,同时CF标志位=1

相关文章:

  • 2021-09-06
  • 2021-07-29
  • 2021-12-02
  • 2021-05-10
  • 2022-01-12
  • 2022-12-23
  • 2021-12-02
猜你喜欢
  • 2022-02-14
  • 2021-12-26
  • 2021-04-04
  • 2022-12-23
  • 2021-12-12
  • 2021-06-20
  • 2021-08-30
相关资源
相似解决方案