导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→自己搞定   哈哈  附源码 !!!!!!!!!!!!!

* 62222: 关于51汇编的BCD乘法运算?

   poppush 
poppush发表的帖子 

 自己搞定   哈哈  附源码 !!!!!!!!!!!!!
;乘法运算
 YUNSUAN:
        MOV A,4AH
        ADD A,4BH
        ADD A,4CH
        JNZ YUNS1
        MOV 50H,40H     ;1.000
        MOV 51H,41H
        MOV 52H,42H
        MOV 53H,43H
        MOV 54H,44H
        AJMP YUNSEX
   YUNS1:;MOV 35H,#00H
         MOV A,40H      ;4AH 40H
         MOV B,4AH
         CALL CFF
         CALL HBCD

         MOV A,41H      ;4AH 41H
         MOV B,4AH
         CALL CFF
           CALL DIEJIA
         MOV A,40H      ;4BH 40H
         MOV B,4BH
         CALL CFF
           CALL DIEJIA
         CALL HBCD
         MOV 3AH,37H

         MOV A,4AH      ;;
         MOV B,42H
         CALL CFF
          CALL DIEJIA
         MOV A,4BH     ;;;
         MOV B,41H
         CALL CFF
          CALL DIEJIA
         MOV A,4CH     ;;;
         MOV B,40H
         CALL CFF
          CALL DIEJIA
         CALL HBCD
          MOV A,36H
          ADD A,3AH
          MOV 36H,A
          MOV 3AH,37H

         MOV A,4AH      ;;
         MOV B,43H
         CALL CFF
          CALL DIEJIA
         MOV A,4BH     ;;;
         MOV B,42H
         CALL CFF
          CALL DIEJIA
         MOV A,4CH     ;;;
         MOV B,41H
         CALL CFF
          CALL DIEJIA
         CALL HBCD
          MOV A,36H
          ADD A,3AH
          MOV 36H,A
          MOV 3AH,37H
          MOV 3BH,35H

          MOV A,4AH      ;; 个位
         MOV B,44H
         CALL CFF
          CALL DIEJIA
         MOV A,4BH     ;;;
         MOV B,43H
         CALL CFF
          CALL DIEJIA
         MOV A,4CH     ;;;
         MOV B,42H
         CALL CFF
          CALL DIEJIA
         CALL HBCD
          MOV A,36H
          ADD A,3AH
          MOV 36H,A
          MOV 3AH,37H
          MOV 3CH,35H

          MOV A,4BH      ;; 十位
         MOV B,44H
         CALL CFF
          CALL DIEJIA
         MOV A,4CH     ;;;
         MOV B,43H
         CALL CFF
          CALL DIEJIA
         CALL HBCD
          MOV A,36H
          ADD A,3AH
          MOV 36H,A
          MOV 3DH,35H

          MOV A,4CH       ;百位
          MOV B,44H
          CALL CFF
          CALL DIEJIA
          CALL HBCD
          MOV 3EH,35H
          MOV 3FH,36H

          MOV R7,4DH
          CJNE R7,#00H,YUNS2
     ASAS:MOV 50H,3BH
          MOV 51H,3CH
          MOV 52H,3DH
          MOV 53H,3EH
          MOV 54H,3FH
         AJMP YUNSEX
      YUNS2:MOV R7,#00H
            MOV A,3BH
            ADD A,40H
            CALL FENLISW
            MOV 3BH,B
            MOV A,3CH
            ADD A,41H
            CALL FENLISW
            MOV 3CH,B
            MOV A,3DH
            ADD A,42H
            CALL FENLISW
            MOV 3DH,B
            MOV A,3EH
            ADD A,43H
            CALL FENLISW
            MOV 3EH,B
            MOV A,3FH
            ADD A,44H
            CALL FENLISW
            MOV 3FH,B
            MOV A,R7
            JZ ASAS
            CALL QINGLING
     YUNSEX:RET

  FENLISW:ADD A,R7      ;分离十位
          MOV B,#10
          DIV AB
          MOV R7,A
          RET

  DIEJIA:MOV A,36H
          ADD A,R7
          MOV 36H,A
         RET

  CFF:   JZ CFFEX              ;输入A B 乘法 输出在R7
         MOV R7,B
         CJNE R7,#00H,CFFEX3
          JMP CFFEX
     CFFEX3:MUL AB
            MOV R7,A
          AJMP CFFEX2
     CFFEX:MOV R7,#00H
    CFFEX2:RET

 HBCD:    MOV R7,36H
          CJNE R7,#00H,BCDEX3   ;gao 37H 36h  di  35h   shuru r7
          JMP BCDEX
     BCDEX3:
           MOV A,R7
           MOV B,#100
           DIV AB
           MOV 37H,A
           MOV A,#10 ;分离十位
           XCH A,B
           DIV AB    ;十位在A 余数在B
           MOV 36H,A
           MOV 35H,B
          AJMP BCDEX2
     BCDEX:MOV 35H,#00H
           MOV 36H,#00H
    BCDEX2:RET

发表时间:2004年9月11日11:59:00

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:谁能给我个帮助吗?正负极性自动切换[求助]有哪位高手懂得怎样用硬件实现充电器输出正负极性自动切换吗?
[下一篇帖子]:一个关于单片机和嵌入式的群,欢迎大家的加入群:5844891 /P P 希望大家能多介绍一些志同