
微机原理,用汇编语言,编写求两个数的最大公约数!!跪求!!!
1个回答
2013-08-04
展开全部
用汇编语言编写程序,提示从键盘输入两个数,求这两个数的最大公约数。基于WIN32、MASM实现include io32.inc
.data
in_msg1 byte 'Enter a number: ',0
in_msg2 byte 'Enter another number: ',0
out_msg byte 'The common denominator is: ',0.code
start:
mov eax,offset in_msg1 ; 提示输入第一个数据
call dispmsg
call readsid ; 输入第一个数据
mov ebx,eax ; 保存到EBX
mov eax,offset in_msg2 ; 提示输入第二个数据
call dispmsg
call readsid ; 输入第二个数据
mov ecx,eax ; 保存到ECX
call again
mov eax,offset out_msg
call dispmsg
mov eax,ecx
call dispsid
jmp done ; 转移到结束
again proc
cmp ebx,ecx
jnl front
xchg ebx,ecx
front: xor edx,edx
mov eax,ebx
div ecx
cmp edx,0
jz equal
mov ebx,ecx
mov ecx,edx
jmp front
equal: ret
again endp
done:
exit 0
end start
.data
in_msg1 byte 'Enter a number: ',0
in_msg2 byte 'Enter another number: ',0
out_msg byte 'The common denominator is: ',0.code
start:
mov eax,offset in_msg1 ; 提示输入第一个数据
call dispmsg
call readsid ; 输入第一个数据
mov ebx,eax ; 保存到EBX
mov eax,offset in_msg2 ; 提示输入第二个数据
call dispmsg
call readsid ; 输入第二个数据
mov ecx,eax ; 保存到ECX
call again
mov eax,offset out_msg
call dispmsg
mov eax,ecx
call dispsid
jmp done ; 转移到结束
again proc
cmp ebx,ecx
jnl front
xchg ebx,ecx
front: xor edx,edx
mov eax,ebx
div ecx
cmp edx,0
jz equal
mov ebx,ecx
mov ecx,edx
jmp front
equal: ret
again endp
done:
exit 0
end start
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询