首页 / 知识
关于Mac上的xcode:x86汇编
2023-04-11 21:10:00

x86 Assembly on a Mac有谁知道在Mac上编写汇编的任何好工具(我正在寻找IDE)。 Xcode对我来说有点麻烦。 另外,在Intel Mac上,我可以使用通用x86 asm吗? 还是有修改后的指令集? 有关后英特尔的任何信息。 另外:我知道在Windows上,asm可以在OS创建的模拟环境中运行,以使代码认为它在自己的专用计算机上运行。 OS X是否提供相同的功能? 在安装了针对基于Intel的Mac的任何版本的Xcode之后,您应该能够编写汇编代码。 Xcode是一套工具,其中只有一个是IDE,因此如果您不想使用它,则不必使用它。 (也就是说,如果您觉得有些笨拙,请向Apple的错误报告者提交错误-每个错误都要进行工程设计。)此外,安装Xcode会同时安装Netwide汇编程序(NASM)和GNU汇编程序(GAS);这样一来,您就可以使用最熟悉的任何汇编语法。 您还需要查看《编译器和调试指南》,因为这些文档记录了Mac OS X运行于其上的各种体系结构所使用的调用约定,以及二进制格式和加载程序的工作方式。特别是IA-32(x86-32)调用约定可能与您习惯的稍有不同。 要记住的另一件事是,Mac OS X上的系统调用接口不同于您在DOS / Windows,Linux或其他BSD版本上使用的系统调用接口。在Mac OS X上,系统调用不被视为稳定的API。相反,您始终要经过libSystem。这样可以确保您编写的代码可以从一个操作系统版本发布到另一个操作系统。 最后,请记住,Mac OS X可以运行在各种各样的硬件上-从32位Core Single到高端四核Xeon,应有尽有。通过汇编进行编码,您可能没有想到的那样优化。一台机器上的最佳选择可能对另一台机器来说是最理想的。 Apple会定期测量其编译器,并使用" -Os"优化标志对其输出进行调整,以使其在整个生产线上都不错。此外,您还可以使用大量的向量/矩阵处理库,通过手动调整的CPU特定实现来获得高性能。 。 去组装很有趣。如今,为了速度而去组装并不是为了胆小。 如前所述,请勿使用syscall。您可以使用标准的C库调用,但是请注意,每个Apple的IA32函数调用ABI堆栈必须对齐16个字节。
如果不对齐堆栈,则在调用任何库或框架时,程序将在 以下代码片段将在我的系统上组装并运行:
最近,我想学习如何在Mac OS X上编译Intel x86: 对于nasm:
对于ld:
对于壳牌:
单线:
让我知道这是否有帮助! 我在这里的博客上写了如何做的事情: http://blog.burrowsapps.com/2013/07/how-to-compile-helloworld-in-intel-x86.html 对于更详细的解释,我在Github上进行了解释: https://github.com/jaredsburrows/Assembly 有关特定于x86 Mac的详细分步介绍,请参见http://peter.michaux.ca/articles/assembly-hello-world-for-os-x。我尝试过的其他链接有一些非Mac陷阱。
在Mac上运行汇编代码距离您只有3个步骤。 可以使用XCODE完成,但更好的方法是使用NASM命令行工具。 但是您也可以不使用XCode。 只要遵循: 为方便起见,下面编写了一个名为myFile.asm的简单文本文件。
这是相同的指令集;这是相同的筹码。 可用功能取决于您的处理器。苹果使用与其他人相同的英特尔产品。所以是的,通用x86应该很好(假设您不在PPC:D上)。 就工具而言,我认为最好的选择是"理解"汇编的优秀文本编辑器。 不要忘了,与Windows不同,所有基于Unix的系统都需要与Windows不同,源必须在目标之前 在Windows上: mov $ source,%destination 但在Mac上则相反。 忘了寻找在Mac上编写/运行/编译汇编器的IDE。但是,请记住,mac是UNIX。参见http://asm.sourceforge.net/articles/linasm.html。一个在Linux上通过GCC运行汇编程序的不错的指南(虽然简短)。您可以模仿这个。 Mac使用Intel芯片,因此您需要查看Intel语法。 |
最新内容
相关内容
关于C#:有什么好的生成文件的工具吗
关于C#:有什么好的生成文件的工具吗?,关于C#:有什么好的生成文件的工具吗?,项目,编译器,平台,生成,any good tool for makefile generati关于c#:通用类型检查
关于c#:通用类型检查,关于c#:通用类型检查,类型,布尔,泛型类型参数,方法,Generic type checking有没有一种方法可以强制/限制传递给基元关于fogbugz:基于证据的计划工具
关于fogbugz:基于证据的计划工具,关于fogbugz:基于证据的计划工具,工具,计划,证据,免费,Evidence Based Scheduling Tool是否有任何免关于c#:通用类型转换FROM字符串
关于c#:通用类型转换FROM字符串,关于c#:通用类型转换FROM字符串,属性,类型,的是,想用,Generic type conversion FROM string我有一个类,我您将哪些代码分析工具用于Java项目
您将哪些代码分析工具用于Java项目?,您将哪些代码分析工具用于Java项目?,分析工具,项目,代码,我对,What code analysis tools do you u关于C#:选择静态代码分析工具
关于C#:选择静态代码分析工具,关于C#:选择静态代码分析工具,项目,检查,工具,编码,Choosing a static code analysis tool我正在一个项修复画笔工具。
修复画笔工具。,修复,画笔,工具,。,这个,工具,和,前,面的,,这个工具和前面的“污点修复画笔工具”很像,就是少两个字,但他仿制图章工具。
仿制图章工具。,仿制,图章,工具,。,原理,仿造,所,取样,的,,原理:仿造所取样的区域,复制到别的区域,去覆盖内容。这样说可以有很多人不常见HTML5开发工具有什么
常见HTML5开发工具有什么,常见,HTML5,开发,工,具有,什么,Adobe,Dreamweaver,CS6,, 1. Adobe Dreamweaver CS6 Dreamweaver CSHTML目录生成工具基础介绍
HTML目录生成工具基础介绍,HTML,目录,生成,工具,基础,介绍,园子,里面,,园子里面很多博主都会为自己的博文创建目录,方便大家浏览。我JavaScript中主流浏览器的调试工具
JavaScript中主流浏览器的调试工具,JavaScript,中,主流,浏览器,的,调试,工具,,JavaScript中主流浏览器的调试工具通常,您在浏览器中Adobe:我们将为HTML5开发最好的工具
Adobe:我们将为HTML5开发最好的工具,Adobe,我们,将为,HTML5,开发,最,好的,工具,近日,,近日由于和苹果在Flash和HTML5上的争端,Adobe站