标题:
用f240汇编怎么求根号?
[打印本页]
作者:
ljp
时间:
2003-9-28 11:05
;=======================SQRT开方子程序===================
;算法采用牛顿迭代公式:X=SQRT(c) ==> Xk=[Xk+(C/Xk)]/2, Xk初值为512
;p1为待开方数的高16位
;p2为待开方数的低16位
;p3为初值
;p4为循环次数
SQRT .macro p1,p2,p3,p4,p5
LDP #4
MAR *,AR3
LAR AR1,p1 ;保留原开方数高16位
LAR AR2,p2 ;保留原开方数低16位
LAR AR3,p4 ;循环次数
SQRTING:p5:
;-----C/Xk
LACC p1,16
OR p2
SFL
SACH p1
SACL p2
LACC p1
rpt #15
subc p3
sacl p1 ;p1为商的高16位
xor p1
or p2
rpt #15
subc p3
sacl p2 ;p2为商的低16位
LACC p1,16
OR p2
ADD #1 ;四舍五入
SFR
;-----(C/Xk)+Xk
ADD p3
;-----[(C/Xk)+Xk]/2
SFR
SACL p3 ;p3即为解
SAR AR1,p1 ;还原待开方数的高16位
SAR AR2,p2 ;还原待开方数的低16位
BANZ SQRTING:p5:
.endm
作者:
long
时间:
2003-10-12 15:43
标题:
用f240汇编怎么求根号?
用f240汇编怎么求根号?
作者:
wslabc@163.net
时间:
2003-10-12 15:43
受益非浅,谢谢了!不过,我听说用rpt容易导致中断出错,能改一下最好了!!我以前用的是从1开始商,计算一个值最多需要16*4=64次,现在看来简单多了,谢谢了
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0