在组装中思考算法

数据结构和算法对于计算机科学至关重要。 是的,大多数软件工程师确实不是每天都在实施它们。 但是,我坚信,良好的数据结构和算法基础可以帮助您成为更好的总体工程师。

今天,我将演示组装中气泡排序的实现。 对大多数人而言,对此的想法可能听起来很疯狂。 您可能会想,“为什么要在汇编中实现算法 ?” 首先,我可能永远不会在汇编中编写生产应用程序。 编译器做编写汇编比我做的更好的方式工作。 但是,我认为了解汇编非常重要。 我们大多数人都运行命令来编译代码,我认为将编译器为我们所做的工作视为理所当然非常容易。 我们所有人每天都使用循环,条件和函数。 您是否曾经花时间了解这些是如何在装配级别实现的? 如果您主修计算机科学,则可能会探索汇编语言。 但是,如果没有,请继续阅读!

您可能要问的第二个问题是“为什么要进行气泡排序?” 对于不熟悉算法的人,气泡排序通常被认为是最慢的排序算法之一。 我选择冒泡排序的唯一主要原因是因为它很容易实现,而将这些算法以汇编形式写出来可能非常棘手。

下面的实现并不完美。 就像我说的那样,编译器在编写汇编方面比我做得更好。 这里的目标不是在汇编中编写完美优化的算法。 如果您像我一样是计算机科学极客,那仅仅是一个演示和一个有趣的周末项目。 我选择MIPS是因为我在为该架构编写程序集方面经验最丰富。 与x86和ARM之类的东西相比,MIPS没有得到广泛使用,但是今天它仍然被广泛使用。

好吧,现在已经足够了。 这是代码:

你怎么看? 在下面发表评论。

在Twitter上关注我: @maxekaplan

From: https://hackernoon.com/thinking-algorithmic-in-assembly-775e768c03e2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值