• 002:无符号三字节除以单字节(51单片机,汇编源码)


    采用移位减法的算法。源码如下:
     1 ;//////////////////////////////////////////////////////////////////////////////
    2 ;函数: div_u24_u8
    3 ;描述: 无符号双字节除以单字节
    4 ;入口: (R5,R6,R7)/(R0)
    5 ;出口: (R5,R6,R7).(R4)
    6 ;注意: 余数在r5;OV=1时表示溢出
    7 ;影响: A,B,R0,R4,R5,R6,R7
    8 div_u24_u8: mov r4,#0
    9 mov b,#24
    10 #ifdef __SPEED_P__
    11 mov a,r5 ;高字节小于除数的时候,只要移位16次
    12 jz _du248_line_03
    13 clr c
    14 subb a,r0
    15 jnc _du248_loop_00
    16 mov b,#16
    17 clr a
    18 xch a,r7
    19 xch a,r6
    20 xch a,r5
    21 xch a,r4
    22 sjmp _du248_loop_00
    23
    24 _du248_line_03: mov a,r6
    25 jz _du248_line_04
    26 clr c
    27 subb a,r0
    28 jnc _du248_loop_00
    29 mov b,#8 ;高字节=0,中字节小于除数的时候,只要移位8次
    30 clr a
    31 xch a,r7
    32 xch a,r5
    33 xch a,r6
    34 xch a,r4
    35 sjmp _du248_loop_00
    36
    37 _du248_line_04: mov a,r7 ;高字节=0,中字节=0
    38 mov b,r0
    39 div ab
    40 mov r4,b
    41 mov r7,a
    42 sjmp _du248_line_05
    43 #endif
    44 _du248_loop_00: clr c
    45
    46 mov a,r7 ;向左移位
    47 rlc a
    48 mov r7,a
    49
    50 mov a,r6
    51 rlc a
    52 mov r6,a
    53
    54 mov a,r5
    55 rlc a
    56 mov r5,a
    57
    58 mov a,r4
    59 rlc a
    60 mov r4,a
    61
    62 mov F0,c ;移出位=1,或者高字节够减的时候,商+1
    63 clr c
    64 subb a,r0
    65 anl c,/F0
    66 jc _du248_line_01
    67 mov r4,a
    68 inc r7
    69 _du248_line_01: djnz b,_du248_loop_00
    70
    71 _du248_line_05: mov a,r4 ;四舍五入
    72 add a,r4
    73 jc _du248_line_02
    74 subb a,r0
    75 jc return_du248
    76 _du248_line_02: clr c
    77 mov a,#1
    78 add a,r7
    79 mov r7,a
    80 clr a
    81 addc a,r6
    82 mov r6,a
    83 clr a
    84 addc a,r5
    85 mov r5,a
    86
    87 return_du248: mov OV,C
    88 ret
    点这里下载asm文件:下载
  • 相关阅读:
    使用注解@Slf4j简化Logger的初始化
    Windows系统CPU和内存状态实时查询(Java)
    Windows下压缩包安装Mysql
    ubuntu安装IntelliJ Idea及图标创建
    【CSS】使用边框和背景
    【CSS】使用CSS选择器(第二部分)
    【CSS】使用CSS选择器
    【CSS】理解CSS
    【HTML5】使用多媒体
    【HTML5】嵌入另一张HTML文档、通过插件嵌入内容、嵌入数字表现形式
  • 原文地址:https://www.cnblogs.com/afeibfp/p/2186051.html
Copyright © 2020-2023  润新知