数据结构和算法对于计算机科学至关重要。 是的,大多数软件工程师确实不是每天都在实施它们。 但是,我坚信,良好的数据结构和算法基础可以帮助您成为更好的总体工程师。
今天,我将演示组装中气泡排序的实现。 对大多数人而言,对此的想法可能听起来很疯狂。 您可能会想,“为什么要在汇编中实现算法 ?” 首先,我可能永远不会在汇编中编写生产应用程序。 编译器做编写汇编比我做的更好的方式工作。 但是,我认为了解汇编非常重要。 我们大多数人都运行命令来编译代码,我认为将编译器为我们所做的工作视为理所当然非常容易。 我们所有人每天都使用循环,条件和函数。 您是否曾经花时间了解这些是如何在装配级别实现的? 如果您主修计算机科学,则可能会探索汇编语言。 但是,如果没有,请继续阅读!
您可能要问的第二个问题是“为什么要进行气泡排序?” 对于不熟悉算法的人,气泡排序通常被认为是最慢的排序算法之一。 我选择冒泡排序的唯一主要原因是因为它很容易实现,而将这些算法以汇编形式写出来可能非常棘手。
下面的实现并不完美。 就像我说的那样,编译器在编写汇编方面比我做得更好。 这里的目标不是在汇编中编写完美优化的算法。 如果您像我一样是计算机科学极客,那仅仅是一个演示和一个有趣的周末项目。 我选择MIPS是因为我在为该架构编写程序集方面经验最丰富。 与x86和ARM之类的东西相比,MIPS没有得到广泛使用,但是今天它仍然被广泛使用。
好吧,现在已经足够了。 这是代码:
你怎么看? 在下面发表评论。
在Twitter上关注我: @maxekaplan
From: https://hackernoon.com/thinking-algorithmic-in-assembly-775e768c03e2