欧几里得求两个整数最大公约数算法的汇编递归实现代码
来源:互联网 发布:c 数组排序 方法 编辑:程序博客网 时间:2024/05/29 11:22
《intel 汇编语言程序设计》第八章练习题
;程序的描述:求最大公约数算法的汇编递归实现,欧几里得算法又称辗转相除法
;作者:落叶树
;创建日期:16:42 2007-7-30
;版本:
INCLUDE Irvine32.inc
.data
.code
main PROC
mov eax,1000h
mov ebx,100h
call TwoIntnoRecursive_gcd ;大写的被禁止了,晕
call DumpRegs
call Crlf
exit
main ENDP
;其他子程序
TwoIntnoRecursive_gcd PROC
;参数:eax,ebx为求最大公约数的两个整数
;返回:edx为最大公约数
push eax
push ebx
test eax,80000000h
.if Sign?
neg eax ;求绝对值
.endif
test ebx,80000000h
.if Sign?
neg ebx ;求绝对值
.endif
.if eax<ebx
xchg eax,ebx
.elseif ebx==0
mov edx,eax ;当余数为0,返回edx值
jmp quit
.endif
mov edx,0
div ebx
mov eax,ebx
mov ebx,edx
call TwoIntnoRecursive_gcd
quit:
pop ebx
pop eax
ret
TwoIntnoRecursive_gcd ENDP
END main
;作者:落叶树
;创建日期:16:42 2007-7-30
;版本:
INCLUDE Irvine32.inc
.data
.code
main PROC
mov eax,1000h
mov ebx,100h
call TwoIntnoRecursive_gcd ;大写的被禁止了,晕
call DumpRegs
call Crlf
exit
main ENDP
;其他子程序
TwoIntnoRecursive_gcd PROC
;参数:eax,ebx为求最大公约数的两个整数
;返回:edx为最大公约数
push eax
push ebx
test eax,80000000h
.if Sign?
neg eax ;求绝对值
.endif
test ebx,80000000h
.if Sign?
neg ebx ;求绝对值
.endif
.if eax<ebx
xchg eax,ebx
.elseif ebx==0
mov edx,eax ;当余数为0,返回edx值
jmp quit
.endif
mov edx,0
div ebx
mov eax,ebx
mov ebx,edx
call TwoIntnoRecursive_gcd
quit:
pop ebx
pop eax
ret
TwoIntnoRecursive_gcd ENDP
END main
- 欧几里得求两个整数最大公约数算法的汇编递归实现代码
- c++实现用欧几里得算法求两个整数的最大公约数
- 用欧几里得算法求两个非负整数的最大公约数
- 欧几里得算法求最大公约数的递归和非递归实现
- 算法实现求两个整数的最大公约数!
- 用java实现欧几里得算法求两个数字的最大公约数
- 欧几里得算法求两个数的最大公约数
- 经典算法(2)- 用欧几里得算法求两个整数的最大公约数(GCD)
- 求最大公约数算法(欧几里得算法)的实现!!!
- 求两个整数的最大公约数算法
- 计算两个非负整数的最大公约数(欧几里得算法)
- 算法---求两个数的最大公约数(递归)
- [算法]Java实现 求两个非负整数最大公约数 循环法 递归法
- 使用欧几里得算法求两个自然数的最大公约数
- 【递归经典题目】欧几里得算法求最大公约数
- 求两个数最大公约数,欧几里得算法
- 利用欧几里得算法求两个整数的最大公因数
- 一行代码求最大公约数(欧几里得算法)
- ftp client
- 个人常用的VIM命令列表
- 简单FTP程序
- JToggleButto示例
- Servlet和Filter的url匹配以及url-pattern详解
- 欧几里得求两个整数最大公约数算法的汇编递归实现代码
- JTable示例
- 随笔
- 重要资料
- 经典:从追MM谈Java的23种设计模式
- 试试
- 将一组tiff格式的图片转化为一个pdf文件
- 解决网页禁止复制的招数!
- 摸手