4227.asm

来自「单片机开发资料光盘-双龙-686M.zip」· 汇编 代码 · 共 37 行

ASM
37
字号
div32u:                    ; 32位/32位无符号除法
        ldi r28,33         ;初始化循环计数器
	clr r27            ;清除余数
	clr r26
	clr r25
	clr r24
d32u_1:
        cp r24,r20         ;余数与除数相比较
	cpc r25,r21
	cpc r26,r22
	cpc r27,r23
	brcs	d32u_2     ;进位位为 1,即后者大,跳至	d32u_2
	sub r24,r20        ;余数 - 除数
	sbc r25,r21
	sbc r26,r22
	sbc r27,r23
	sec                ;置进位位
	rjmp	d32u_3
d32u_2:
        clc                ;清进位位
d32u_3:
        rol r16   	   ;左移结果(被除数)
	rol r17
	rol r18
	rol r19
	rol r24            ;左移余数(被除数移到除数)
	rol r25
	rol r26
	rol r27
	dec r28            ; 计数器减 1
	brne	d32u_1     ;不为 0 ,跳至 d32u_1
	ror r27            ;右移余数
	ror r26
	ror r25
	ror r24
	ret

⌨️ 快捷键说明

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