【MCS-51】【A51】反汇编得到16位二进制数除法算法

        反汇编得到除法算法

1.本算法是16位二进制数的带参除法运算

2.参数为被除数和除数,被除数高位R6、低位R7,除数高位R4、低位R5

3.返回结果为商和余数,商高位R6、低位R7,余数高位R4、低位R5

除法算法代码如下:

Q00FB:        CLR   F0                           ;00FB   C2 D5
              MOV   A,R4                         ;00FD   EC
              JNB   ACC.7,Q010A                  ;00FE   30 E7 09
              CPL   F0                           ;0101   B2 D5
              CLR   A                            ;0103   E4
              CLR   C                            ;0104   C3
              SUBB  A,R5                         ;0105   9D
              MOV   R5,A                         ;0106   FD
              CLR   A                            ;0107   E4
              SUBB  A,R4                         ;0108   9C
              MOV   R4,A                         ;0109   FC
Q010A:        MOV   A,R6                         ;010A   EE
              JNB   ACC.7,Q0123                  ;010B   30 E7 15
              CPL   F0                           ;010E   B2 D5
              CLR   A                            ;0110   E4
              CLR   C                            ;0111   C3
              SUBB  A,R7                         ;0112   9F
              MOV   R7,A                         ;0113   FF
              CLR   A                            ;0114   E4
              SUBB  A,R6                         ;0115   9E
              MOV   R6,A                         ;0116   FE
              LCALL Q0131                        ;0117   12 01 31
              CLR   C                            ;011A   C3
              CLR   A                            ;011B   E4
              SUBB  A,R5                         ;011C   9D
              MOV   R5,A                         ;011D   FD
              CLR   A                            ;011E   E4
              SUBB  A,R4                         ;011F   9C
              MOV   R4,A                         ;0120   FC
              SJMP  Q0126                        ;0121   80 03
Q0123:        LCALL Q0131                        ;0123   12 01 31
Q0126:        JNB   F0,Q0130                     ;0126   30 D5 07
              CLR   C                            ;0129   C3
              CLR   A                            ;012A   E4
              SUBB  A,R7                         ;012B   9F
              MOV   R7,A                         ;012C   FF
              CLR   A                            ;012D   E4
              SUBB  A,R6                         ;012E   9E
              MOV   R6,A                         ;012F   FE
Q0130:        RET                                ;0130   22
Q0131:        CJNE  R4,#00H,Q013F                ;0131   BC 00 0B
              CJNE  R6,#00H,Q0160                ;0134   BE 00 29
              MOV   A,R7                         ;0137   EF
              MOV   B,R5                         ;0138   8D F0
              DIV   AB                           ;013A   84
              MOV   R7,A                         ;013B   FF
              MOV   R5,B                         ;013C   AD F0
              RET                                ;013E   22
Q013F:        CLR   A                            ;013F   E4
              XCH   A,R4                         ;0140   CC
              MOV   R0,A                         ;0141   F8
              MOV   B,#08H                       ;0142   75 F0 08
Q0145:        MOV   A,R7                         ;0145   EF
              ADD   A,R7                         ;0146   2F
              MOV   R7,A                         ;0147   FF
              MOV   A,R6                         ;0148   EE
              RLC   A                            ;0149   33
              MOV   R6,A                         ;014A   FE
              MOV   A,R4                         ;014B   EC
              RLC   A                            ;014C   33
              MOV   R4,A                         ;014D   FC
              MOV   A,R6                         ;014E   EE
              SUBB  A,R5                         ;014F   9D
              MOV   A,R4                         ;0150   EC
              SUBB  A,R0                         ;0151   98
              JC    Q0159                        ;0152   40 05
              MOV   R4,A                         ;0154   FC
              MOV   A,R6                         ;0155   EE
              SUBB  A,R5                         ;0156   9D
              MOV   R6,A                         ;0157   FE
              INC   R7                           ;0158   0F
Q0159:        DJNZ  B,Q0145                      ;0159   D5 F0 E9
              CLR   A                            ;015C   E4
              XCH   A,R6                         ;015D   CE
              MOV   R5,A                         ;015E   FD
              RET                                ;015F   22
Q0160:        MOV   A,R5                         ;0160   ED
              MOV   R0,A                         ;0161   F8
              MOV   B,A                          ;0162   F5 F0
              MOV   A,R6                         ;0164   EE
              DIV   AB                           ;0165   84
              JB    OV,Q0185                     ;0166   20 D2 1C
              MOV   R6,A                         ;0169   FE
              MOV   R5,B                         ;016A   AD F0
              MOV   B,#08H                       ;016C   75 F0 08
Q016F:        MOV   A,R7                         ;016F   EF
              ADD   A,R7                         ;0170   2F
              MOV   R7,A                         ;0171   FF
              MOV   A,R5                         ;0172   ED
              RLC   A                            ;0173   33
              MOV   R5,A                         ;0174   FD
              JC    Q017E                        ;0175   40 07
              SUBB  A,R0                         ;0177   98
              JNC   Q0180                        ;0178   50 06
              DJNZ  B,Q016F                      ;017A   D5 F0 F2
              RET                                ;017D   22
Q017E:        CLR   C                            ;017E   C3
              SUBB  A,R0                         ;017F   98
Q0180:        MOV   R5,A                         ;0180   FD
              INC   R7                           ;0181   0F
              DJNZ  B,Q016F                      ;0182   D5 F0 EA
Q0185:        RET  

留着以后备用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值