小白:小程,你为什么给我讲这么古老的语言?我有可能会跟它打交道吗?
小程:如果允许在使用时才去学的话,任何东西都不必提前学习。而“用时才学”的情况是经常存在的,也是有道理的,你的时间跟精力不应该放在一些现在用不上的知识与技能上(以后可能用上?那以后出现再说,先解决已经出现的或即将出现的问题;如果没有问题,那就开心玩耍去吧)。同样,学习arm汇编,最好是因为你“在做”的事情需要用到这些知识与技能,比如要翻译一段别人的汇编代码,比如需要做一些逆向的修改汇编代码的工作,比如需要看懂程序崩溃时的汇编代码,等等。而至于装逼,也是一个理由(装逼也可能让你有一定的大局观)。
小白:我随便问问而已,你居然讲了一堆。所以,作为一个从事建设型工作的人,我可以跟汇编说拜拜了。
小程以为,基本上,大多数人都不必学习汇编的。
所以,本文只是介绍一个大概,让装逼成为可能。
本文讲解如何写一个gnu arm的汇编程序,并且在安卓手机上运行起来。
(一)怎么写一个hello world?
首先是要知道gnu arm的汇编语法的,用任何语言都是这样。
对于asm的语法,如果愿意,你可以通读一遍“gnu arm汇编手册”,如果不愿意也可以在想了解什么指令时再去查看。
对于代码的编写,用你熟悉的编辑器写就好,保存为.s文件。
比如say hello:
.data
msg: .asciz "hello, gnu asm