我尝试将在 Linux (fedora 9) 下编写的 C 代码转换为汇编 x86 代码,但是,我在 Math.h 函数中遇到问题。该库中的函数(例如 ceil、floor、log、log10、pow)在 x86 汇编中未定义。你能帮我解决这个问题吗?
谢谢。
最佳答案
大多数库函数不会用汇编语言定义,至少不会直接映射到 ADD
指令的加法运算符。如果您想用汇编语言重写库,则必须使用处理器可用的任何功能来实现该函数。大多数库函数都需要单独的汇编语言子例程,而不仅仅是单个操作。解决这个问题的最简单方法是让各个库子例程独立工作,然后将它们合并到更大的程序中。
您可以编译 C 代码并检查反汇编的输出,但要注意编译器优化,这可能会使输出难以理解。
请问这个任务的目的是什么?由于编译器本质上是 C 语言到汇编语言的翻译器,因此很少需要手动执行此操作。这是作业吗?
关于c - 汇编 x86 中的 Math.h 库函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762079/