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

📄 d457.asm

📁 这是我最近写的一些单片机的简单的模块
💻 ASM
字号:
;D457功能:双字节二进字无符号数除以单字节二进字数
org 000h
jmp 40h
org 40h
;入口条件:被除数在r4,r5中,除数在r7中
;出口信息:ov=0时,单字节商在r3中,ov=1时,溢出
D457: CLR C
      MOV A,R4
      SUBB A,R7
      JC DV50
      SETB OV       ;商不是一字节,溢出
      RET
DV50: MOV R6,#8 ;求平均值(R4R5/R7-→R3)
DV51: MOV A,R5   ;被除数带进位左移一位
      RLC A
      MOV R5,A
      MOV A,R4
      RLC A
      MOV R4,A    ;同上
      MOV F0,C     ;暂存进位位
      CLR C
      SUBB A,R7    ;移位相减
      ANL C,/F0   ; 
      JC DV52     ;相减有借位,且原来无进位,C为1,则跳转,A4
                  ;原来有进位,此时C为零
                  ;原来无进位,相减无借位,C为零
      MOV R4,A   ;其他情况继续将减后的结果赋r4
DV52: CPL C      ;  A4  进位位取反
      MOV A,R3
      RLC A       ;not very understand
      MOV R3,A
      
      DJNZ R6,DV51 ;若r6=0则除完
      MOV A,R4 
;     ADD A,R4 若四舍五入则有此二句
;     JC DV53
      SUBB A,R7    ;余数减除数
      JC DV54      ;若不能减则跳出
DV53: INC R3       ;能减则除数加一
DV54: CLR OV
jmp $
end

⌨️ 快捷键说明

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