exp_3_4.asm.svn-base

来自「单片机硬件实验代码」· SVN-BASE 代码 · 共 34 行

SVN-BASE
34
字号
             ;多位BCD码减法
              ORG       0000H
              LJMP      START
              ORG       0100H
      START:  MOV       30H,#40H     ;减数,被减数首地址和字节数
              MOV       31H,#50H
              MOV       32H,#03H  
              
              MOV       R0,30H         
              MOV       R1,31H
              MOV       R7,32H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;  下面的算法太经典了,省去了烦人的半字节交换,类似于二进     ;;;;
;;;  制求补减法变加法,借位变进位处理更是绝了,值得看看         ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
              SETB      C
       LOOP:  CLR       A
              ADDC      A,#99H
              SUBB      A,@R1 
              ADD       A,@R0
              DA        A
              MOV       @R1,A
              INC       R0
              INC       R1
              DJNZ      R7,LOOP
              
              ;借位存在下一位中
              JNC       _A
              MOV       @R1,#00H
              AJMP      EXIT
        _A:   MOV       @R1,#01H                         
      EXIT:   SJMP      $
              END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?