如何使用汇编语言求最大公约数/共因子/gcd
综述
最大公因子,又称最大公约数(英语:greatest common divisor,gcd),指两个或多个整数共同具有的最大约数。
代码
under the DLX format
PrintfFormat: .asciiz "gcM=%d\n\n".align 2
PrintfPar: .word PrintfFormat
PrintfValue: .space 4.text.global main
main:;*** Read two positive integer numbers into R1 and R2addi r1,r0,Prompt1
开辟第一个读数空间(回忆R0始终是0的)jal InputUnsigned ;read uns.-integer into R1
jump and link到程序:读取数据程序;数据最后是放在R1中(与Lab1类似)add r2,r1,r0 ;R2 <- R1
将R1放入到R2(回忆R0始终是0的)addi r1,r0,Prompt2
开辟第二个读数空间(回忆R0始终是0的)jal InputUnsigned ;read uns.-integer into R1
jump and link到程序:读取数据程序;数据最后是放在R1中(与Lab1类似)
Loop: ;*** Compare R1 and R2seq r3,r1,r2 ;R1 == R2 ?
seq操作:(三个参数,r3 r1 r2)就是比较r1和r2的数值,如果相等那么r3为1否则为0bnez r3,Result
bnez操作:(两个参数,r3 label)如果r3~=0也就是说:R1==R2,那么PC值为Result,即跳转到此处。sgt r3,r1,r2 ;R1 > R2 ?
sgt操作:(三个参数:r3,r1,r2)
如果R1大于R2那么R3=1;bnez r3,r1Greater
bnez操作:判断R3是不是为1,如果是1那么就跳去r1Greater;
否则就会继续往下执行到r2Greater
r2Greater: ;*** subtract r1 from r2sub r2,r2,r1
执行:r2 = r2 – r1j Loop
无条件跳回到Loopr1Greater: ;*** subtract r2 from r1sub r1,r1,r2
执行:r1 = r1 - r2j Loop
无条件跳回到Loop
Result: ;*** Write the result (R1)
将结果写入sw PrintfValue,r1addi r14,r0,PrintfPartrap 5;*** endtrap 0
如何使用汇编语言求最大公约数/共因子/gcd相关推荐
- python求一个数的因子_Python 最大公约数算法
#13 HaydnLiao Hay***iao@163.com 27 可按以下思路减少循环次数: 1. 当最小值为最大公约数时,直接返回: 2. 当最小值不为最大公约数时,最大公约数不会大于最小值的1 ...
- Problem B: 编写函数:求最大公约数gcd()和最小公倍数lcm() (Append Code) 山东科技大学 oj
题目描述 辗转相除法,也称欧几里得算法,是求最大公约数的算法.辗转相除法首次出现于欧几里得的<几何原本>(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的<九章算术> ...
- 编程之美——2.7 求最大公约数
/** * 本程序用于求解两个正整数的最大公约数 * 求解最大公约数往往可以用的有三种方法: * eg: 求正整数x和y的公约数 * 1. 遍历, 从1遍历到min(x, y)为止, 找到能够同时被两 ...
- 牛客网递归错题:递归、欧几里得求最大公约数的时间复杂度、线性递归与尾递归实例区别
很久找不到学习的平衡点,似乎有目的性的去解决问题寻求方法获得知识会比直接吸取知识要有趣,更印象深刻,这些都是我爬过的坑,以此铭记在心. 1. 队列在程序调用时必不可少,因此递归离不开队列.× 递归是栈 ...
- 辗转相除法(欧几里得算法)求 最大公约数与最小公倍数+推论与证明。
首先我们规定:0不参与公约数和公倍数的讨论 先来讨论最大公约数: 最大公约数求法:两个数的所有公共质数相乘. 考虑三个问题. 为什么是公共的:公共代表这个数可以被两个数都整除 为什么是质数:合数一定能 ...
- C语言求35 45的最大公约数,C语言怎么求最大公约数和最小公倍数
#3 段梦超2009-12-20 21:31 输入两个正整数m和n, 求其最大公约数和最小公倍数. <1> 用辗转相除法求最大公约数 算法描述: m对n求余为a, 若a不等于0 则 m 最 ...
- 【c语言】—求最大公约数和最小公倍数多种方法
一.求最大公约数 1.枚举法求最大公约数 思路:先求两个数中的最小值,最大公约数不可能大于两个数的最小数 比如6和18,最大公约数就是6 再如3和9,最大公约数就是3 然后再从1开始循环遍历到最小值的 ...
- c语言用质因数分解法求最大公约数,分解质因数法求最大公约数(javascrip实现)
//判断是否为质数------------------------------------------------------ function isPrime(n) { for (var i = n ...
- 辗转相除法求最大公约数原理分析(附代码实现)
辗转相除法求最大公约数原理分析(附代码实现) 前言 解释 原理分析 代码 结语 前言 辗转相除法用起来很简单,但是其原理却自己想不明白.于是乎看了几篇有关辗转相除法原理的分析,在这里自己写下自己的理解 ...
最新文章
- Makefile:160: recipe for target 'all' failed (Ubuntu 16.06 + Opencv3.2)解决办法
- SpringData Jpa、Hibernate、Jpa 三者之间的关系
- 事件循环机制(even loop)
- 为什么说Swift正在颠覆整个互联网生态?
- [机器学习]理解熵,交叉熵和交叉熵的应用
- 漫画:什么是自动驾驶?
- 第5篇:Flowable快速工作流脚手架Jsite_请假实战_部署流程和发起流程
- XenDesktop 学习笔记1之DDC
- python lambda函数 与 函数式编程
- 怎样快速将Word转长图
- 阿里云kafka安装
- LaaS,PaaS,SaaS介绍
- android 铃声播放器,Muziko - 想截取音乐片段当铃声?这款漂亮的播放器能帮你 - Android 应用 - 【最美应用】...
- DBeaver与excel
- ubuntu18.04下复现 singleshotpose(yolo-6D) 源代码复现
- 刘强东事件已过谈谈中国出生率
- EDG为何刷爆你的朋友圈?是什么让年轻人那么激动?作为程序员你关注了么?
- 马云现身西班牙度假 半年多来首次在境外露面
- 【092】罗马数字 XXII.XI.MMXII
- android7.0夜间模式,Android 7.0隐藏的夜间模式 一个软件就能开启
热门文章
- c语言学生成绩统计表人数比例,计算机等级考试成绩分析(2010-2013).doc
- 定积分以及变积分上限函数(附代码)
- python基于pingouin包进行统计分析:使用mediation_analysis函数构建包含协变量的mediation analysis(中介分析)模型、covar参数指定协变量
- Internet download manager下载外网问题
- 2021.5.3 考研数学基础第一讲——高等数学预备知识
- jmeter beanshell脚本使用
- Python爬虫——scrapy框架介绍
- 【解决】camunda部署流程报错should point to a running platform rest api
- plsql和navicate有什么区别_plsql和navicat连接远程oracle(易错点)
- 130个免费 微信小程序源码分享