深入iOS系统底层之程序中的汇编代码
标签可以当作是一个文件中的局部指针变量,对付数据段中界说的标签凡是用来当做会见变量的地点,而对付代码段中界说的标签凡是用来做指令跳转用。好比下面的代码:
有的时辰还可以界说偏向标签,偏向标签只能是数字,然后可以在行使这些偏向标签时,在偏向标签后头带一个b表白跳转到当前指令前面界说的某个最近的偏向标签,而偏向标签后头带一个f表白跳转到当前指令后头界说的某个最近的偏向标签。就好比下面演示的代码:
标签只是文件内陆点偏移的别名,只能在界说的文件内部引用。要想让这个标签被外部引用和会见就必要将标签声明为标记。高级说话文件中界说的能被外部会见的函数和全局变量着实都是一个标记,不管是函数地点照旧全局变量的内存地点,着实都是一个地点位置,而地点的别名则是可以用标签暗示,因此要想将一个标签界说为外部可会见,就必要将标署名声明为标记。就如高级说话中的静态函数和静态变量以及全局函数和全局变量一样,汇编说话中的标记声明也有两种:
标记名要和标署名匹配。由于C说话的函数名称以及全局变量等标记在编译时天生的标记前面添加一个下划线_。以是在高级说话中的名称对应的真实标记都是带一个下划线前缀的,因此一样平常环境下我们在汇编说话中声明的标记和标署名最好带一个下划线。而且在其他高级说话的声明中不要行使这个下化线,就好比下面的例子:
同时在汇编代码中引用高级说话界说的标记时,也要多带上一个下划线前缀。 4.对齐 由于内存寻址会见的一些特征,要求我们的某些代码可能数据的存放地点必需是某个数字的倍数,也就是所谓的对齐。配置对齐的要害字如下:
5.宏界说 汇编说话也可以和C说话一样行使宏界说,来做一些代码复用处理赏罚。宏界说的语法如下:
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |