试用汇编代码完成如下c语言代码的功能 int gcdintaintbwhilea!=bifa ba = a-b; else b=b-a;
;输入:eax=a, ebx=b ;输出:eax=最大公约数
gcd: cmp eax, ebx ;比较a和b的大小 je end ;如果a=b,跳出循环 jg a_greater_b ;如果a>b,跳转到a>b的判断 b_greater_a: sub ebx, eax ;b=b-a jmp gcd ;继续循环 a_greater_b: sub eax, ebx ;a=a-b jmp gcd ;继续循环 end: mov eax, ebx ;此时a=b,最大公约数即为a(或b) ret ;返回结果
原文地址: https://www.cveoy.top/t/topic/eLm3 著作权归作者所有。请勿转载和采集!