汇编语言: 根据欧几里德辗转相除法求两个正整数M、N的最大公约数R。

来源:互联网 发布:java远程执行shell脚本 编辑:程序博客网 时间:2024/06/04 20:30

根据欧几里德辗转相除法求两个正整数M、N的最大公约数R。
2017年6月7日20:37:32

辗转相除法
1 求A/B的余数R
2 如果R=0 则B为最大公约数 退出循环
3 用B更新A的值,R更新B的值
重复1-3

data segmentB dw 600A dw 1515gys dw ?data endsstacks segment stackdw 60h dup(?)top label wordstacks endscode segment     assume ds:data,cs:code,ss:stacksmain proc far    mov ax,data    mov ds,ax    mov ax,stacks    mov ss,ax    lea sp,top    ;A>B    mov ax,A    mov bx,B        ;GOl1:    ;reset    xor dx,dx    ; AX/BX=AX...DX    div bx    ; next div    mov ax,bx       mov bx,dx       ; check    cmp dx,0    jne l1    mov gys,axl2: mov cx,16    mov bx,gysl3: rol bx,1    mov dl,bl    and dl,1    add dl,30h    mov ah,02    int 21h    loop l3exit:       mov ah,4ch    int 21hmain endpcode endsend main
阅读全文
0 0