divd.asm

来自「这是我最近写的一些单片机的简单的模块」· 汇编 代码 · 共 49 行

ASM
49
字号
;功能双字节二进制无符号数除法
org 000h
jmp 40h
org 40h
;入口信息:被除数放在r2,r3,r4,r5从高位到低位中00000A0C,除数放在r6,r7中 0002
;出口信息:ov=0时,双字节商在r2,r3中,ov=1时,溢出
DIVD: CLR C
      MOV A,R3
      SUBB A,R7
      MOV A,R2
      SUBB A,R6
      JC DVD1
      SETB OV
      RET
DVD1: MOV B,#10H
DVD2: CLR C
      MOV A,R5
      RLC A
      MOV R5,A
      MOV A,R4
      RLC A
      MOV R4,A
      MOV A,R3
      RLC A
      MOV R3,A
      XCH A,R2
      RLC A
      XCH A,R2
      MOV F0,C
      CLR C
      SUBB A,R7
      MOV R1,A
      MOV A,R2
      SUBB A,R6
      ANL C,/F0
      JC DVD3
      MOV R2,A
      MOV A,R1
      MOV R3,A
      INC R5
DVD3: DJNZ B,DVD2
      MOV A,R4
      MOV R2,A
      MOV A,R5
      MOV R3,A
      CLR OV
RET

⌨️ 快捷键说明

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