阶乘核心汇编算法

yaos 2004-02-13 08:16:38
int fact(unsigned long * pf, unsigned long n)
{
unsigned long t = 0;

pf[0] = 1;

__asm
{
pusha
mov ecx, 1;
mov esi, dword ptr [pf]
mov edi, esi
mov ebx, 0
clc
cld
}
fact1:
__asm
{
push ecx
mov dword ptr [t], ecx
mov ecx, dword ptr [l]
inc ecx
push esi
push edi
push ebx
}
fact2:
__asm
{
lodsd
mul dword ptr [t]
add eax, ebx
adc edx, 0
mov ebx, edx
stosd
loop fact2
cmp ebx, 0
je fact3
mov dword ptr [edi], ebx
inc dword ptr [l]
}
fact3:
__asm
{
pop ebx
pop edi
pop esi
pop ecx
inc ecx
cmp ecx, dword ptr [n]
jbe fact1
popa
}
}

最基础的算法
...全文
49 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧