热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用gcc以英特尔语法生成汇编代码?-HowdoyouusegcctogenerateassemblycodeinIntelsyntax?

Thegcc-SoptionwillgenerateassemblycodeinAT&Tsyntax,isthereawaytogeneratefilesi

The gcc -S option will generate assembly code in AT&T syntax, is there a way to generate files in Intel syntax? Or is there a way to convert between the two?

gcc -S选项将以AT&T语法生成汇编代码,有没有办法用Intel语法生成文件?或者有没有办法在两者之间进行转换?

3 个解决方案

#1


178  

Have you tried this?

你试过这个吗?

gcc -S -masm=intel test.c

Untested, but I found it in this forum where someone claimed it worked for them.

未经测试,但我发现它在这个论坛中有人声称它为他们工作。

I just tried this on the mac and it failed, so I looked in my man page:

我只是在Mac上尝试了这个并且它失败了,所以我查看了我的手册页:

   -masm=dialect
       Output asm instructions using selected dialect.  Supported choices
       are intel or att (the default one).  Darwin does not support intel.

It may work on your platform.

它可能适用于您的平台。

For Mac OSX:

对于Mac OSX:

clang++ -S -mllvm --x86-asm-syntax=intel test.cpp

Source: https://stackoverflow.com/a/11957826/950427

#2


15  

The

gcc -S -masm=intel test.c

Does work with me. But i can tell another way, although this has nothing to do with running gcc. Compile the executable or the object code file and then disassemble the object code in Intel asm syntax with objdump as below:

和我一起工作吗但我可以告诉另一种方式,虽然这与运行gcc无关。编译可执行文件或目标代码文件,然后用objdump反汇编Intel asm语法中的目标代码,如下所示:

 objdump -d --disassembler-optiOns=intel a.out

This might help.

这可能有所帮助。

#3


5  

I have this code in CPP file:

我在CPP文件中有这个代码:

#include 
#include 
#include 

int a = 0;
int main(int argc, char *argv[]) {
    asm("mov eax, 0xFF");
    asm("mov _a, eax");
    printf("Result of a = %d\n", a);
    getch();
    return 0;
 };

That's code worked with this GCC command line:

该代码适用于此GCC命令行:

gcc.exe File.cpp -masm=intel -mconsole -o File.exe

It will result *.exe file, and it worked in my experience.

它将导致* .exe文件,并且它在我的经验中起作用。

Notes:
immediate operand must be use _variable in global variabel, not local variable.
example: mov _nLength, eax NOT mov $nLength, eax or mov nLength, eax

A number in hexadecimal format must use at&t syntax, cannot use intel syntax.
example: mov eax, 0xFF -> TRUE, mov eax, 0FFh -> FALSE.

That's all.


推荐阅读
  • mybatis相关面试题 ... [详细]
  • C++中类的内外定义及内联函数详解
    本文详细介绍了C++中的类内定义与类外定义,以及内联函数的使用方法和注意事项。通过实例说明了不同定义方式的优缺点,并探讨了编译器对内联函数的处理机制。 ... [详细]
  • 计算机视觉中的行为识别:步态分析的ReID应用
    本文介绍了一项基于步态的行为识别(ReID)项目,通过步态特征实现个体身份的准确识别。文中展示了项目的基本原理、特征提取方法及其实现效果。 ... [详细]
  • 【java】关键字、代码块、接口、枚举学习笔记
    主要内容1关键字2代码块3接口4枚举1Java中的关键字1.1static关键字用一句话说就是:可以直接通过对象.的形式使用,不用new实 ... [详细]
  • POJ2226 二分图最小覆盖问题
    在一个大小为n×m的网格中,部分单元格为泥泞状态,其余为干净。目标是使用宽度固定为1但长度可变的木板覆盖所有泥泞单元格,且不覆盖任何干净单元格。木板允许重叠。本问题通过构建二分图并求其最小覆盖来解决。 ... [详细]
  • 本文提供了详细的指导,帮助开发者了解如何使用PHP插件进行网站内容的翻译,特别是针对WordPress插件和主题的汉化及多语言支持。 ... [详细]
  • 电子与正电子的相互作用
    本文探讨了电子与正电子之间的基本物理特性及其在现代物理学中的应用,包括它们的产生、湮灭过程以及在粒子加速器和宇宙射线中的表现。 ... [详细]
  • 本文探讨了BZOJ4029 [HEOI2015] 定价问题,通过使用贪心算法解决该问题。文章提供了详细的题目解析和代码实现,重点在于如何通过计算十进制下的最低有效位(lowbit)来简化问题。 ... [详细]
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • 本文详细探讨了在Python开发中遇到的ImportError: 无法找到名为Crypto.Cipher的模块的问题,并提供了多种解决方案,包括环境配置、库安装和代码调整等方法。 ... [详细]
  • Hibernate入门指南:单表数据库操作详解
    本文介绍了Hibernate作为全面的ORM框架的基础知识,并详细讲解了在MyEclipse环境中配置Hibernate以及进行基本的数据库单表操作的方法,包括增删改查等常见操作。 ... [详细]
  • django项目中使用手机号登录
    本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数function.py文件se ... [详细]
  • Lua基本语法lua与C#的交互(相当简单详细的例子)
    lua脚本与C#的交互本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验——高分辨率用户请根据需求调整网页缩放比例)1LuaAndC#——L ... [详细]
  • Nibblestutotials.net教程 – Blend  Silverlight1系列之Button Basic
    Basic:createonebutton文中三部分所用资源及代码下载:part1,part2,part3Buttonsbasicpart1:drawingNibbl ... [详细]
author-avatar
手机用户2602897931
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有