【发布时间】:2019-10-29 20:03:33
【问题描述】:
我在汇编中创建了一个非常小的应用程序。它将一些寄存器设置为 0 并进行乘法运算。没什么特别的。
但是,gcc 在机器码中添加了很多我不想要的东西。
我在 objdump 中找到的一小部分内容:
- deregister_tm_clones
- register_tm_clones
- __do_global_dtors_aux
- frame_dummy
- __libc_fini_array
- memset
- 还有更多
我知道我不需要它们,但我不知道如何告诉编译器停止包含它们。我尝试使用优化选项,但这并没有改变任何东西。
我编译它基本上是这样的:GCC -o ./main.elf ./main.S
非常感谢您的帮助!
【问题讨论】:
-
如果您使用 gcc 驱动程序的唯一原因是预处理汇编代码,您可以自己运行预处理器 (cpp),然后运行 gas 和 ld 进行汇编和链接。
标签: gcc assembly embedded machine-code