📄 4227.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -