深入iOS系统底层之程序中的汇编代码
这个主要是因为找不到系统SDK的路径文件所致,因此可以带上-isysroot参数来同时指定系统SDK路径。下面就是一个使用的示例:
这里的-isysroot后面的路径要确保是对应系统SDK的路径,同时-arch中的值要和路径中的SDK要是相同的结构体系。 4.生成汇编代码 -S 源代码文件 -o 输出文件: 要将某个源代码文件生成汇编代码时需要在 -S 参数后面指定源代码文件。而-o 后面的输出文件就是对应的汇编代码文件,一般这个输出文件以.s为扩展名。这里要注意同时使用-arch参数指定输出的体系架构。 5.编译 -c 源代码文件 -o 输出文件:要编译某个源代码文件时使用这两个参数选项,其中-c后面跟着的是要编译的源代码文件,而-o后面输出的是.o为扩展名的目标文件。 6.链接 -filelist LinkFileList文件 -o 输出文件: 执行链接时要把所有目标.o文件作为输入参数,但是为了管理方便可以将这些.o文件的路径保存到一个扩展名为.LinkFileList的文件中,然后再使用-filelist 参数后面跟随对应的.LinkFileList文件来指定目标文件集合。而-o后面的输出文件就是对应的可执行程序文件。 工程中引入汇编代码 你也可以在xcode工程中直接引入汇编代码或者使用汇编代码来编写程序和函数,添加汇编文件的方法是:File菜单->New->File...->在列表中选择:Assembly File即可。一般情况下汇编代码都是以.s为扩展名,生成的文件是一个空文件,然后你就可以在文件里面编写对应的汇编代码了。系统也支持在汇编代码中设置断点进行调试。因为iOS系统支持多种体系结构,所以可以在汇编代码中使用几个宏来区分代码是x86_64的还是arm或者arm64的, 就比如下面的代码:
当你在项目中添加了一个汇编文件时,就需要掌握和了解汇编代码的编写。关于汇编指令的详细描述由于太过庞大这里就不介绍了,这里主要介绍一些常用的汇编关键字,以便帮助大家能更好的阅读和编写程序。 常见的汇编语法 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |