在上一个线程之后,它使我对学习汇编编程有所兴趣。并不是想对有用的应用程序进行编程,仅仅是为了获得低级编程的感觉,从而更好地了解正在发生的事情。
有人可以为初学者推荐任何书籍或在线资源吗?
谢谢。
在上一个线程之后,它使我对学习汇编编程有所兴趣。并不是想对有用的应用程序进行编程,仅仅是为了获得低级编程的感觉,从而更好地了解正在发生的事情。
有人可以为初学者推荐任何书籍或在线资源吗?
谢谢。
Answers:
这是学术活动,还是您打算使用所学的汇编语言?这些天,这是相当专业的东西。编译器优化已变得如此出色,以至于即使是高性能硬盘驱动器之类的东西,通常也有大约1%的代码库是用汇编器编写的。沿着食物链发展到4位或某些8位处理器,您会发现使用了更多的汇编语言。
如果您真的想使用汇编语言,请选择一个具有良好指令集的处理器。我是ARM的前雇员,所以我可能有偏见,但是我发现ARM指令集特别容易学习-在公司的第三天,我就可以在asm中编写高效的FIR滤波器。目前,ARM的半导体合作伙伴每季度出货约10亿个ARM内核,因此很容易找到一家愿意使用您的ARM ASM专业知识的公司。
有很多ARM评估板可用,价格约为50美元,可以试用您的代码-看来ARM Cortex M3将会非常受欢迎。它使用ARM的Thumb2指令集,该指令集比普通的ARM32代码更加晦涩难懂,但仍然非常简单且非常强大。
这个小板看起来很酷,只需80欧元:http : //www.olimex.com/dev/stm32-103stk.html
基本上,就汇编编程而言,您需要首先了解底层体系结构,然后才需要相应的语言,例如,对于PIC微控制器,您可以使用所提供的编译器和该语言。我使用此站点来参考PIC微控制器教程。
我总是发现最困难的部分是hello world,它通常只是一个琐碎的Assem函数,是从高级语言调用的,例如将两个数字相加。一旦克服了这一障碍,只需在指令表中添加指令和伪操作(如定义数据)即可。
尽管我从未使用过ARM,但我还是第二个。像这样的最小体系结构不仅会更容易,而且可能更接近于拥有合法的体系,而不是仅仅出于教学目的。
我有一个指令集,汇编器和模拟器,并为此目的创建了一些课程。我还没有关于我做的好坏的反馈,但是在那里,给它15分钟半小时的时间,看看它是否对您有帮助。 http://github.com/dwelch67/lsasim 之后,我有了一些主流的指令集模拟器,您也可以尝试,简单,简洁,可以在有C编译器的任何地方运行,等等。