⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqrt32.cpp

📁 这是我本人编写的一个32位定点小数运算的函数库。对于没有浮点运算器的场合
💻 CPP
字号:
//
//
//

#include <stdlib.h>

////////////////////////////////////////////////////////////////////////////////////

long FixSqrt32(long x,long y)
{
	long r;
	long x1=__max(x,y);

	__asm {
		mov eax,x
		mov ebx,eax
		cmp ebx,0
		jnl l1
		neg ebx
	}
l1:
	__asm {
		imul eax
		mov esi,eax
		mov edi,edx

		mov eax,y
		mov ecx,eax
		cmp ecx,0
		jnl l2
		neg ecx
	}
l2:
	__asm {
		imul eax
		cmp ebx,ecx
		jnc l3
		mov ebx,ecx
	}
l3:
	__asm {
		add esi,eax
		adc edi,edx

		mov eax,esi
		mov edx,edi
		div ebx
		add ebx,eax
		shr ebx,1

		mov eax,esi
		mov edx,edi
		div ebx
		add ebx,eax
		shr ebx,1

		mov eax,esi
		mov edx,edi
		div ebx
		add ebx,eax
		shr ebx,1

		mov r,ebx
	}
	return r;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -