Advertisement

汇编程序求两个数的最大公约数子程序

阅读量:

程序需求:编写一个名为Gcd的子程序,用于计算两个数值的最大公约数,主程序与子程序之间通过堆栈实现参数传递。调用Gcd子程序,计算三个双变量dvar1、dvar2以及dvar3的最大公约数,并将结果输出。
编程思路:首先采用C语言进行实现,随后将其转换为汇编语言实现。为简化实现过程,在子程序中不单独分配栈空间用于存储变量,而是直接利用EBP寄存器对传入的参数进行访问。

开发环境

Windows 10操作系统配合Visual Studio 2017开发环境

C语言代码实现如下:

复制代码
 #include <stdio.h>

    
  
    
 int dvar1 = 12;
    
 int dvar2 = 6;
    
 int dvar3 = 18;
    
 int gcd(int a, int b)
    
 {
    
 	int tmp = b;
    
 	while (a%b != 0)
    
 	{
    
 		tmp = a % b;
    
 		a = b;
    
 		b = tmp;
    
 	}
    
 	return tmp;
    
 }
    
 int main()
    
 {
    
 	int res = gcd(dvar1, gcd(dvar2, dvar3

全部评论 (0)

还没有任何评论哟~