有什么快速的方法可以找到汇编源代码?

问题描述

我正在尝试为基本功能(如printf,puts等)找到Dietlibc源代码。当前在应该放置它们的文件夹中使用grep {command_name} -r -A20,但似乎真的很累。有没有更快的方法

另一种已知的方法是为每个功能反转目标文件,但是我认为这将花费更多时间。

解决方法

我已经找到带有* .S文件的文件夹,但是对于诸如printf()之类的最基本功能,只有.c文件

许多函数 用C编写,并且它们是根据其他C函数和/或汇编语言函数编写的。因此,printf()(在.../libstdio/printf.c中)使用vprintf(),后者使用__v_printf()(在.../lib/__v_printf.c中),strcpy()和{{1} {1}}等,它们在strlen()中具有ARM实现。某些功能在C和汇编语言中都实现了,可能是因为汇编在某些体系结构上提供了性能提升,而在其他体系结构上却没有(或者可能是因为没人为某些体系结构编写汇编版本)。

因此,如果您正在寻找.../arm,那么对于任何体系结构都可能找不到它,因为它是调用其他函数的相对高级的函数。这意味着您可以将Dietlibc移植到新的体系结构,而不必编写库中每个函数的汇编版本。您只需要实现少量基本程序即可。阅读PORTING文件,以了解移植到新体系结构所要做的工作,这将帮助您了解那些核心例程。或者,只需查看几个特定于体系结构的目录,看看它们实现了什么。