📄 4226.asm
字号:
d32v16u: ; 32位/16位无符号除法
cp r18,r20 ;被除数高16位 > 除数
cpc r19,r21 ;结果溢出
brcc cc
ldi r22,$10 ;初始化循环计数器
rol r16 ;左移被除数
rol r17
aa:
rol r18 ;左移余数(被除数移到除数)
bst r19,7
rol r19
sub r18,r20 ;余数-除数
sbc r19,r21
brts loop ;够减,跳至 loop
brcc loop
add r18,r20 ;不够减,再加除数
adc r19,r21
clc ;清进位位
rjmp loop1
loop:
sec ;置进位位
loop1:
rol r16 ;左移结果
rol r17
dec r22 ;计数器减 1
brne aa ;不为 0,再循环
clt ;清 t 标志
ret
cc:
set ;置 t 标志
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -