导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助!!程序

* 29283: 求助!!程序

   zm63377 
zm63377发表的帖子 

 求助!!程序
请帮忙看一下下面的程序:功能是降(1AH)指向的32位长整数开平方,结果为16位数,送入24H单元.用的公式是牛顿迭代法.Xn+1=1/2(a/Xn+Xn),a为原来的被开方数.Xn为平方根.

SQR:     LD        20H,[1AH]                    ;取被开方数
            LD        22H,2[1AH]
           NORML   20H,26H                       ;规格化,移位次数放在26H单元
           JE          SQR3                           ;?为什么在这里跳转?什么和什么相等?
           CMPB     26H,#16                      ;移位次数和16进行比较
           JLE        SQR1                           ;为什么小于等于就跳转
           LD         24H,#0FFH                   ;下面两句表示什么意思 
           SJMP      SQR2
SQR1:  
           SHRB      26H,#1                       ;这两句又表示什么?
           LD          24H,#OFFFFH
           SHR        24H,26H
SQR2:
           LD          20H,[1AH]                   ;取被开方数
           LD          22H,2[1AH]
           CMP        22H,24H                      ;24H中为上次计算结果Xn
           JC           SQR3                          ;为什么这样比较就可以?
           DIVU       20H,24H                      ;a/Xn
           CMP        20H,24H                      ;判断结果是否相等
           JC           SQR3                          ;大于等于跳转?
           CLR         26H                            ;清移位次数
           ADD        24H,20H                     ;Xn+a/Xn
           ADDC      26H,0                         ;干吗还要加上进位位?
           SHRL       24H,#1                       ;除以2,得到1/2(Xn+a/Xn)
           SJMP       SQR2
SQR3:
           RET     

非常感谢!
   


       

    

  



发表时间:2003年5月9日15:38:51

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  29287.[详细]哪位热心的大侠花点时间帮我看看,我实在搞不明白。
摘要:......(无内容)
- [zm63377][944次] 2003年5月9日

[上一篇帖子]:为什么会这样了,多路开关有问题?我的数据采集电路为多路开关MAX354+AD976a,由于采样间隔较
[下一篇帖子]:我有一些同时是华工的,我对他们印象不错,但唯有局域网,我这几天有时间,所以常挂。