【发布时间】:2012-10-07 18:37:28
【问题描述】:
关于在 LLVM 汇编代码中接受用户输入的问题。它会在主函数的参数中吗?目前我的主要功能是这样的:
define i32 @main() nounwind {
factorial.exit:
%0 = tail call i32 @factorial(i32 3) nounwind ; <i32> [#uses=1]
%1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %0) nounwind ; <i32> [#uses0]
ret i32 0
}
它现在计算 3 的阶乘,或者我在 3 的位置放置的任何数字。我目前正在从终端执行此操作,但我将制作一个 makefile 最终执行它。我如何让它从终端获取用户输入,我想我会在将它编译为字节码之后执行它类似于“lli factorial.bc 5”,它会给我5的阶乘。
感谢您的帮助!
【问题讨论】:
-
转到llvm.org/demo。在 C 中键入您的代码。分析输出的 LLVM 程序集。
-
是的,我一直在尝试。这很难解释,当我尝试实现它时,我得到了一大堆错误。我收到了很多关于 i8 和 i32 的错误。
标签: assembly input llvm bytecode