📄 32open_uadri.txt
字号:
32位整型数开平方
;input r15:r14:r13:r12 (it make a copy from r3::r0)
;output r25:r24
;use r20,r21,r22,r26,r28
;输入返回数据:lsqrt(0x5300164) = 0x2471
;对应于8M晶振时开方所用时间为 48.38us
;原程序提供者:Jens NL,Email:jensnl@home.com
.include "8515def.inc"
.org 0x00
rjmp reset
.org 0x20
reset:
ldi r16,0x02 ; Stack Pointer Setup
out SPH,r16 ; Stack Pointer High Byte
ldi r16,0x5F ; Stack Pointer Setup
out SPL,r16 ; Stack Pointer Low Byte
; 验证
;test r25:r24 = lsqrt(0x5300164)
loopm:
ldi r16,0x64
mov r12,r16
ldi r16,0x01
mov r13,r16
ldi r16,0x30
mov r14,r16
ldi r16,0x05
mov r15,r16
rcall lsqrt
nop
rjmp loopm
lsqrt:
clr r20
clr r21
clr r22
clr r24
clr r25
clr r26
ldi r28,16
m03:
rol r15
rol r20
rol r21
rol r22
rol r15
rol r20
rol r21
rol r22
lsl r24
rol r25
rol r26
cp r24,r20
cpc r25,r21
cpc r26,r22
brsh m01
sbc r20,r24
sbc r21,r25
sbc r22,r26
subi r24,-2
m05:
m01:
dec r28
sbrs r28,0
sbrc r28,1
rjmp m03
breq m08
mov r15,r14
mov r14,r13
mov r13,r12
rjmp m03
m08:
lsr r26
ror r25
ror r24
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -