iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 有哪些苹果平台允许内联汇编?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

自从苹果公司宣布解码后,我一直在尝试解密一段时间,现在各种平台上的内联汇编状态是什么。 截至目前(Xcode 7.1.1),这是我观察到的: > OSX – 允许(我期待永远) > iOS – 允许,即使使用位代码(内联汇编放入位代码)with probable confirmation > watchOS – 不允许(不会编译,给内联汇编被禁用错误) > tvOS – 允许 然而,这些都是可疑的
@H_675_14@
@H_675_14@
自从苹果公司宣布解码后,我一直在尝试解密一段时间,现在各种平台上的内联汇编状态是什么。

截至目前(Xcode 7.1.1),这是我观察到的:

> OSX – 允许(我期待永远)
> iOS – 允许,即使使用位代码(内联汇编放入位代码)with probable confirmation
> watchOS – 不允许(不会编译,给内联汇编被禁用错误)
> tvOS – 允许

然而,这些都是可疑的结论,因为我没有每个市场上的应用程序来验证这一点。

我已经看到开源库和应用程序的一些帖子,当包含内联汇编和位码时,iOS应用程序将被拒绝。我看到一些帖子,tvOS是类似于watchOS,不会让你使用内联汇编(可能固定在最新的Xcode?)

有没有一些可靠的参从苹果或..任何关于什么平台我可以使用内联汇编?

解决方法

在任何ARM平台(iOS,watchOS,tvOS)上,如果您提供混合的bitcode / asm存档,则只能与嵌入式asm相同的架构编译(见下文)。这意味着您可以提交针对该架构的完整二进制应用程序 – 提交位代码绝对没有任何优势(因此,苹果没有理由允许它)。

根据Apple docs代码对于watchOS和tvOS是必需的,因此内联汇编被禁用。

On X86一个包含比特码和X86 ASM混合的存档可以编译成64位应用程序。这不是一件明智的事情,因为手工制作的汇编程序大概是性能关键部分,但它可以工作。

在ARM上也是如此。 X86案例是因为X86指令集是X86_64的纯粹子集,这意味着任何X86汇编器都是有效的X86_64汇编器。在ARM上,64位处理器需要运行在32位状态才能执行32位代码。根据ARM docs,您不能在同一应用程序中混合32位和64位程序集(请参阅更改执行状态)

这意味着如果您提供了基于ARM架构ARCH的位线加内联asm的混合,实际上AppStore只能做(至少目前为止)编译ARCH的位代码,它可以让您(说)一个完整的32位应用程序在64位处理器上运行。重点是什么?首先上传一个没有位代码的普通32位可执行文件要简单得多。

@H_675_14@

大佬总结

以上是大佬教程为你收集整理的ios – 有哪些苹果平台允许内联汇编?全部内容,希望文章能够帮你解决ios – 有哪些苹果平台允许内联汇编?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:ios允许内联哪些平台汇编苹果
猜你在找的iOS相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap