汇编-求两数最大公约数
2016-04-11 20:45
246 查看
最大公约数算法如下:
gcd(num1,num2)=gcd(num2, num1 mod num2)
gcd(num1 ,0)= num1
其中num1, num2 >=0
根据算法有汇编程序如下:
gcd(num1,num2)=gcd(num2, num1 mod num2)
gcd(num1 ,0)= num1
其中num1, num2 >=0
根据算法有汇编程序如下:
;功能:求两个数的最大公约数 ;作者:王文堃 ;创建时间:2016/4/11 INCLUDE vcIO.inc .data str_input BYTE "请输入两个整数:",0ah,0 str_scanf BYTE "%d %d",0 str_output BYTE "数字%2d和%2d的最大公约数是%2d",0ah,0 num1 DWORD ? num2 DWORD ? .code main PROC invoke printf, OFFSET str_input invoke scanf, OFFSET str_scanf, OFFSET num1, OFFSET num2 mov eax, num1 ;被除数 mov ebx, num2 ;除数 jmp TESTING FORLOOP: xor edx,edx ;保存余数 div ebx ;num1/num2 商存在eax中,余数存在edx中 mov eax, ebx ;num1 = num2 mov ebx, edx ;num2 = num1%num2 TESTING: cmp ebx,0 jne FORLOOP invoke printf, OFFSET str_output, num1, num2, eax ret main ENDP ;子程序 END main
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析