⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ok带余数的除法.txt

📁 是我在电子竞赛期间写的一些单片机汇编程序
💻 TXT
字号:
divdll    data    20h        ;定义被除数单元
divdlh    data    21h
divdhl    data    22h
divdhh    data    23h
divl        data    24h        ;定义除数单元
divh        data    25h
templ    data    26h        ;定义余数单元
temph    data    27h

mov  divdll,#44h		;低位
mov  divdlh,#45h		
mov  divl,#12h			;低位
mov  divh,#13h

divd:    push        acc
        push        b
    mov    a,divh    ;判除数是否为零
    orl    a,divl
    jnz    divd0
    setb    ov        ;除数为零,置溢出标志
    pop    b
    pop    acc
    ret
divd0:    mov    templ,#00h    ;除数不为零,进行运算
    mov    temph,#00h
    mov    b,#20h        ;置循环次数
divd1:clr    c            ;进位位、余数单元和
    mov    a,divdll        ;被除数单元全体逐个
    rlc    a            ;向左循环移位
    mov    divdll,a
    mov    a,divdlh
    rlc    a
    mov    divdlh,a
    mov    a,divdhl
    rlc    a
    mov    divdhl,a
    mov    a,divdhh
    rlc    a
mov    divdhh,a
mov    a,templ
rlc    a
mov    templ,a
xch    a,temph
rlc    a
xch    a,temph
mov    f0,c            ;保存进位位
clr    c
subb    a,divl        ;用余数减去除数
mov    r7,a
mov    a,temph
subb    a,divh
anl    c,/f0            ;判断是否够减
jc    divd2        ;不够减,移下一位
mov    templ,r7        ;够减,刷新余数单元
mov    temph,a
inc    divdll        ;商上1
divd2:    djnz    b,divd1
    clr    ov
    pop    b
    pop    acc

mov r3, divdll
mov r2, divdlh
mov  r0,templ
mov  r1,temph


ret
end

⌨️ 快捷键说明

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