c - 汇编 x86 中的 Math.h 库函数?

标签 c linux assembly math.h

我尝试将在 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/

相关文章:

c - 标准 C 是否接受 `{0}` 作为任何结构的初始值设定项?

c++ - 如何使用 C 的 sprintf() 安全地格式化 float / double ?

c - 信号处理 - 异步函数和多线程应用程序,信号堆栈

c - 在 GCC 中实现编译时只读函数指针表

linux - 汇编程序中的插入排序不起作用

Linux du目录大小,这怎么可能?

c++ - 用 dup 管道传输后如何取回标准输出?

linux - Apache Pig 进程在 Putty session 超时后被终止

assembly - imul和idiv在8086上到底是如何工作的?

assembly - x86-64 MOV r/m64,imm32 = io?