http://blog.sina.com.cn/softdebug[订阅]
字体大小: 正文
对于大数的平方根的整数部分的求法(2007-01-04 09:12:26)
前些天就一直考虑这个问题,没有用程序实现,昨天有空的时候用汇编写一个子程序
调试通过。
sqtdata proc sss:DWORD,ddd:DWORD
LOCAL   mulaa  :DWORD
    push esi
    push edi
    invoke GlobalAlloc,40h,8196+4
    mov  mulaa,eax
    .if  eax!=0
      mov  esi,sss
      mov  edi,ddd
      mov  ecx,[esi]
      xor  eax,eax
      stosd
      rep  stosd
      mov  ecx,[esi]
      shl  ecx,4
      mov  eax,ecx
      shr  eax,5
      inc  eax
      mov  edi,ddd
      mov  [edi],eax
    sqtdata01:
      push ecx
      invoke set1data,edi,ecx
      invoke muldata,edi,edi,mulaa
      invoke cmpdata,mulaa,esi
      .if (eax==1)
        pop ecx
        invoke set0data,edi,ecx
        loop sqtdata01
        jmp  sqtdata011
      .endif
      .if (eax==-1)
        pop ecx
        loop sqtdata01
      sqtdata011:
        invoke set1data,edi,0
        invoke muldata,edi,edi,mulaa
        invoke cmpdata,mulaa,esi
        .if (eax==1)
          invoke set0data,edi,0  
        .endif
        jmp  sqtdata01e
      .endif
      .if (eax==0)
        pop  ecx   
      .endif
    sqtdata01e:
      invoke datazero,ddd  
      invoke GlobalFree,mulaa
    .endif
    pop  edi
    pop  esi
    ret
sqtdata endp
  • 评论加载中,请稍候...
发评论    明星私家相册

验证码:看不清楚数字吗?点击这里再试试。收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...